[phobos] Parallelism in Phobos
Andrei Alexandrescu
andrei at erdani.com
Sat Jul 31 04:31:45 PDT 2010
Hello,
Here's a belated answer to your question (hectic times prevented me
from tending to non-urgent email).
I think a parallel library would be great to have as indeed phobos is
geared at general concurrency. Such a lib would also expose bugs and
weaknesses in our model and its implementation.
Andrei
Sent by shouting through my showerhead.
On May 30, 2010, at 12:54 PM, David Simcha <dsimcha at gmail.com> wrote:
> I have a few questions/comments about the possible inclusion of a
> library for parallelism in Phobos:
>
> 1. What is the status of std.concurrency? It's in the source tree,
> but it's not in the documentation or the changelogs. It appears to
> have been checked in quietly ~3 months ago, and I just noticed now.
>
> 2. From reading the description of std.concurrency in TDPL it
> seemed more geared toward concurrency (i.e. making stuff appear to
> be happening simultaneously, useful for things like GUIs and
> servers) rather than parallelism (i.e. the use of multiple CPU cores
> to increase throughput, useful for things like scientific computing
> and video encoding). It seems fairly difficult (though I haven't
> tried yet) to write code that's designed for pull-out-all-stops
> maximal performance on a multicore machine, especially since
> immutability is somewhat of a straight jacket. I find implicit
> sharing and the use of small synchronized blocks or atomic ops to be
> very useful in writing parallel programs.
>
> 3. Most code where parallelism, as opposed to concurrency, is the
> goal (at least most that I write) is parallelized in one or two
> small, performance critical sections, and the rest is written
> serially. Therefore, it's easy to reason about things and safety
> isn't as important as the case of concurrency-oriented
> multithreading over large sections of code.
>
> 4. I've been eating my own dogfood for awhile on my ParallelFuture
> library. (http://cis.jhu.edu/~dsimcha/parallelFuture.html; http://dsource.org/projects/scrapple/browser/trunk/parallelFuture/parallelFuture.d
> ) It's geared toward throughput-oriented parallelism on multicore
> machines, not concurrency for GUIs, servers, etc. and is higher
> level than std.concurrency. Is there any interest in including
> something like this in Phobos? If so, would we try to make it fit
> into the explicit-sharing-only model, or treat it as an alternative
> method of multithreading geared towards pull-out-all-stops
> parallelism on multicore computers?
>
> One last note: Walter claimed a while back on the NG that
> Parallelfuture doesn't compile. I use it regularly and it compiles
> for me. Walter, can you please point out what the issue was?
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/phobos/attachments/20100731/d389fb9d/attachment-0001.html>
More information about the phobos
mailing list