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.