[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