On 3/19/2011 3:08 PM, Caligo wrote:


On Fri, Mar 4, 2011 at 3:05 PM, Lars T. Kyllingstad
<public@kyllingen.nospamnet> wrote:

    David Simcha has made a proposal for an std.parallelism module to be
    included in Phobos.  We now begin the formal review process.

    The code repository and documentation can be found here:

    https://github.com/dsimcha/std.parallelism/wiki
    http://cis.jhu.edu/~dsimcha/d/phobos/std_parallelism.html
    <http://cis.jhu.edu/%7Edsimcha/d/phobos/std_parallelism.html>

    Please review the code and the API, and post comments in this thread
    within the next three weeks.

    On 25 March I will start a new thread for voting over the inclusion of
    the module.  Voting will last one week, until 1 April.  Votes cast
    before
    or after this will not be counted.

    David, do you have any comments?

    -Lars


Is std.parallelism better suited for data parallelism, task parallelism,
or both?

Both to some degree, but with more emphasis on data parallelism.

And how does it compare to something like OpenMP?

It was not **explicitly** designed to be an OMP killer, but supports parallel foreach(which can be made into parallel for using std.range.iota), and parallel reduce. The synchronization primitives that OMP supports are already in druntime.

A major advantage over OpenMP is that std.parallelism is implemented within the language. This means it's mostly portable across compilers and platforms and can easily be modified if you don't like something in it. It also means that the syntax is more consistent with standard D syntax rather than being a bunch of weird looking pragmas.

Reply via email to