[Haskell-cafe] Paralelism and Distribution in Haskell
Don Stewart
dons at galois.com
Mon Sep 6 18:13:52 EDT 2010
ivansichfreitas:
> Hi fellow haskellers,
>
> I'm interested in the performance of parallel and/or distributed
> implementations in haskell language. For example, supose I want to
> develop an application that distributes a computation between many
> multicore computers, what are the advantages I can take from haskell
> in that?
> Anyone who has experience doing distributed computing with haskell,
> and could point some diferences between haskell and other languages?
>
> Any feedback is very much apreciated. Thanks.
The primary work in this area has been GUM/GPH and GDH, these days being
led from St Andrews, http://www-fp.cs.st-andrews.ac.uk/wordpress/
* GUM, a parallel execution layer to allow GHC 'par' strategies and
friends to run transparently across nodes, on top of an underlying
message passing layer.
http://www.macs.hw.ac.uk/~dsg/gph/
GHC implements the same abstractions for shared memory multicores.
* Glasgow Distributed Haskell, an extension of the Parallel Haskell
language to support distribution and fault tolerance,
http://www.macs.hw.ac.uk/~dsg/gdh/
These systems run on a fork of GHC's runtime. Recent work is underway to
merge some of the facilities back into mainline GHC.
http://hackage.haskell.org/trac/ghc/wiki/HackPar
There is also the Eden project, which I think is another implementation
of a parallel Haskell model, with features to support distribution.
The key players to talk to are Kevin Hammond, Jost Berthold,
Hans-Wolfgang Loidl, Philip Trinder et al.
Besides "traditional" language research projects, there are also various
open source libraries on Hackage to support distributed computation in
Haskell to some degree or another. For example:
A framework for distributed STM,
http://hackage.haskell.org/package/DSTM
Holumbus-Distribution, distributed data structures like Chan, MVar or functions
http://hackage.haskell.org/package/Holumbus-Distribution
Holumbus map-reduce skeleton
http://hackage.haskell.org/package/Holumbus-MapReduce
net-concurrent is a simple haskell library for doing parallel
computation on several computers using the network
http://hackage.haskell.org/package/net-concurrent
-- Don
More information about the Haskell-Cafe
mailing list