Jump to page: 1 2 3
Thread overview
[phobos] std.parallelism: Request for review
Feb 26, 2011
David Simcha
Feb 26, 2011
David Simcha
Feb 27, 2011
Jonathan M Davis
Feb 27, 2011
Brad Roberts
Feb 27, 2011
Jonathan M Davis
Feb 26, 2011
Russel Winder
Feb 26, 2011
David Simcha
Feb 26, 2011
Russel Winder
Feb 26, 2011
David Simcha
Feb 26, 2011
David Simcha
Mar 03, 2011
Russel Winder
Mar 03, 2011
David Simcha
Mar 03, 2011
David Simcha
Mar 06, 2011
Russel Winder
Mar 06, 2011
David Simcha
Mar 06, 2011
Russel Winder
Mar 06, 2011
David Simcha
Mar 07, 2011
Russel Winder
February 26, 2011
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/phobos/attachments/20110226/7bcb3529/attachment-0001.html>
February 26, 2011
Great! Why not submitting this to the group itself?

Who would like to manage the review process?


Andrei

On 2/26/11 12:19 PM, David Simcha wrote:
> I've taken care of all of the issues Andrei mentioned a while back with regard to std.parallelism. I've moved the repository to Github. <https://github.com/dsimcha/std.parallelism/wiki>, updated/improved the documentation <http://cis.jhu.edu/%7Edsimcha/d/phobos/std_parallelism.html>, cleaned up a couple miscellaneous minor issues, added a LazyMap object for pipelining, and added a benchmarks folder with at least one benchmark for each of the parallelism types (parallel foreach, map, reduce, task-based, pipelining). This is an official request for review of this module for inclusion in Phobos.
>
> I didn't include any benchmark results on the wiki yet, because so far I've only had a chance to run them on a dual core I have at home They're also admittedly slightly tuned to my hardware, so the results would be biased. Others may feel free to post their benchmark results to the wiki.
>
>
>
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
February 26, 2011
On 2/26/2011 2:24 PM, Andrei Alexandrescu wrote:
> Great! Why not submitting this to the group itself?

You mean the newsgroup?  I thought this was the proper place.  If not, then I'll post to the NG.

February 26, 2011
David,

On Sat, 2011-02-26 at 13:19 -0500, David Simcha wrote:
> I've taken care of all of the issues Andrei mentioned a while back with regard to std.parallelism.  I've moved the repository to Github., updated/improved the documentation, cleaned up a couple miscellaneous minor issues, added a LazyMap object for pipelining, and added a benchmarks folder with at least one benchmark for each of the parallelism types (parallel foreach, map, reduce, task-based, pipelining).  This is an official request for review of this module for inclusion in Phobos.

I switched from the Subversion checkout to the Git repository -- yayyy... :-) -- compiled up (64-bit obviously!) and my Pi by Quadrature works fine still.

> I didn't include any benchmark results on the wiki yet, because so far I've only had a chance to run them on a dual core I have at home They're also admittedly slightly tuned to my hardware, so the results would be biased.  Others may feel free to post their benchmark results to the wiki.

There is no SCons, Waf, CMake for the benchmark files so I don't know what the correct build and execute should be.  If you give me the instruction I can run stuff on my twin Xeon workstation -- being three years old it is ancient, but it does have 8 cores.


-- 
Russel. ============================================================================= Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder at ekiga.net 41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel at russel.org.uk London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.puremagic.com/pipermail/phobos/attachments/20110226/d6f1aea6/attachment.pgp>
February 26, 2011
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/phobos/attachments/20110226/82d6e33e/attachment.html>
February 26, 2011
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/phobos/attachments/20110226/a16b56b8/attachment.html>
February 26, 2011
On Sat, 2011-02-26 at 14:43 -0500, David Simcha wrote:

> I feel like the build process for the benchmarks is so trivial that no formal process is required.    Besides, I know nothing about build tools because, for anything I write, I tend to keep the build process so simple and stupid that nothing more than a 2-line script or the builtin build system for Code::Blocks is required.

OK, I used SCons as it is the right tool for dealing with directories of independent compilations.

> For std.parallelism, as you appear to have figured out, you need to put it in your Phobos source folder, edit the makefile and recompile Phobos.  Each benchmark is completely self-contained.  The way I run them is to open them in Code::Blocks (or whatever IDE happens to be available) and hit "build and run".  dmd -O -inline -release someBenchmark.d && ./someBenchmark would also work fine.

I don't go anywhere near recompiling Phobos, I just use what comes in the distribution.  I keep extra stuff in ~/lib/D and use the DPATH, LIBPATH and LIBS capabilities.

        |> scons
        /usr/bin/python /home/Checkouts/Mercurial/SCons/bootstrap/src/script/scons.py
        scons: Reading SConscript files ...
        scons: done reading SConscript files.
        scons: Building targets ...
        dmd -I. -I/home/users/russel/lib/D -m64 -c -ofeuclidean.o euclidean.d
        gcc -o euclidean euclidean.o -L/home/users/russel/lib.Linux.x86_64 -L/home/users/russel/lib.Linux.x86_64/DMD2/lib64 -lparallelism -lphobos2 -lpthread -lm -lrt
        dmd -I. -I/home/users/russel/lib/D -m64 -c -ofmatrixInversion.o matrixInversion.d
        gcc -o matrixInversion matrixInversion.o -L/home/users/russel/lib.Linux.x86_64 -L/home/users/russel/lib.Linux.x86_64/DMD2/lib64 -lparallelism -lphobos2 -lpthread -lm -lrt
        dmd -I. -I/home/users/russel/lib/D -m64 -c -ofmillionSqrt.o millionSqrt.d
        gcc -o millionSqrt millionSqrt.o -L/home/users/russel/lib.Linux.x86_64 -L/home/users/russel/lib.Linux.x86_64/DMD2/lib64 -lparallelism -lphobos2 -lpthread -lm -lrt
        dmd -I. -I/home/users/russel/lib/D -m64 -c -ofparallelSort.o parallelSort.d
        gcc -o parallelSort parallelSort.o -L/home/users/russel/lib.Linux.x86_64 -L/home/users/russel/lib.Linux.x86_64/DMD2/lib64 -lparallelism -lphobos2 -lpthread -lm -lrt
        dmd -I. -I/home/users/russel/lib/D -m64 -c -ofpipelining.o pipelining.d
        gcc -o pipelining pipelining.o -L/home/users/russel/lib.Linux.x86_64 -L/home/users/russel/lib.Linux.x86_64/DMD2/lib64 -lparallelism -lphobos2 -lpthread -lm -lrt
        scons: done building targets.


        |> for f in euclidean matrixInversion millionSqrt parallelSort pipelining ; do echo "==========================  $f  ==============================" && $f ; done
        ==========================  euclidean  ==============================
        Serial reduce:  5182 milliseconds.
        Parallel reduce with 1 cores:  5183 milliseconds.
        ==========================  matrixInversion  ==============================
        Inverted a 256 x 256 matrix serially in 63 milliseconds.
        Inverted a 256 x 256 matrix using 1 cores in 64 milliseconds.
        ==========================  millionSqrt  ==============================
        Parallel benchmarks being done with 1 cores.
        Did serial millionSqrt in 975 milliseconds.
        Did parallel foreach millionSqrt in 1263 milliseconds.
        Did parallel map millionSqrt in 979 milliseconds.
        ==========================  parallelSort  ==============================
        Serial quick sort:  6256 milliseconds.
        Parallel quick sort:  6317 milliseconds.
        ==========================  pipelining  ==============================
        Did serial string -> float, euclid in 2606 milliseconds.
        Did parallel string -> float, euclid with 1 cores in 2576 milliseconds.


So we have the problem that the code is failing to observe that I have 8
cores on my machine :-((

-- 
Russel. ============================================================================= Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder at ekiga.net 41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel at russel.org.uk London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.puremagic.com/pipermail/phobos/attachments/20110226/35ad8dda/attachment.pgp>
February 26, 2011
Yah, the newsgroup. The more eyes, the better.

Andrei

On 2/26/11 1:31 PM, David Simcha wrote:
> On 2/26/2011 2:24 PM, Andrei Alexandrescu wrote:
>> Great! Why not submitting this to the group itself?
>
> You mean the newsgroup? I thought this was the proper place. If not, then I'll post to the NG.
>
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
February 26, 2011
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/phobos/attachments/20110226/7ca034f3/attachment.html>
February 26, 2011
On Saturday 26 February 2011 12:39:16 Andrei Alexandrescu wrote:
> Yah, the newsgroup. The more eyes, the better.

Yeah. Technically, I would argue that this _is_ the proper place (it _is_ the Phobos list after all), but not enough people pay attention to this list. Most everyone that pays attention to any of the D newsgroups pays attention to the main D newsgroup, I think. So, anything that we want to have high visibility needs to go there, if it makes more sense organizationally for it to go elsewhere.

- Jonathan M Davis
« First   ‹ Prev
1 2 3