[Haskell-cafe] Bulk Synchronous Parallel
sebastian.sylvan at gmail.com
Mon Apr 19 18:33:57 EDT 2010
On Mon, Apr 19, 2010 at 11:03 PM, Gregory Crosswhite <
gcross at phys.washington.edu> wrote:
> Hey everyone,
> Has anyone done any work with bulk synchronous parallel computing in
> Haskell? The idea behind the model is that you divide your computation into
> a series of computation and communication phases, and it has recently
> occurred to me that this might be an ideal setup for parallelizing a pure
> language like Haskell because you can think of it as alternating between a
> stage that independently applies a bunch of functions to a bunch of
> independent chunks of data and a stage that applies a big function to all of
> the chunks that recombines them into new chunks for the next parallel phase,
> so that all stages are conceptually pure even if eventually the second stage
> is turned into something involving communication and hence side-effectful
> under the hood.
> Experiences? Thoughts?
You may want to check out NDP, e.g. here:
<http://www.haskell.org/haskellwiki/GHC/Data_Parallel_Haskell>It's at a
higher level of abstraction, in a way. You don't need to worry about the
dicing up and recombining, the compiler takes care of it for you. You just
write things in terms of parallel arrays (which can be small, e.g. 2 element
wide) and the compiler will fuse/flatten these together into big bulk
parallel computations with communication between them.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe