
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