What's the status of multicore programming in Haskell? What projects, tools, and libraries are available now? What experience reports have there been?
+26
A:
In the 2009-2010 period, the following things have happened:
2010 Q3: * Parallel futures for Haskell, in GHC.
2010 Q2:
- The Orc language, for concurrent job scheduling and scripting, was released.
- A new scalable thread event manager was merged into GHC.
- An improved approach to parallel sparks and strategies was developed.
- The Nikola EDSL for embedding GPU programs in Haskell was developed.
- The LLVM backend for GHC was merged in, with good performance improvements.
2010 Q1:
- ghc 6.12.x series: with parallel performance improvements
- Microsoft announces 2 years of funding to support commercial users of Parallel Haskell
- Google published their experience report on the use of Haskell
- Intel announced the Concurrent Collections for Haskell library, including scalability numbers -- scaling results for 32 and 48 cores
- Sun/Oracle bought us a machine and funded work on improving parallel performance.
- Recent updates to the status of Data Parallelism in Haskell
- MSR released ThreadScope, a graphical profiler for parallel Haskell programs
- The GHC runtime got extensively tuned for sparks and futures
- There was a good discussion on additional ways to improve parallel performance
- A collection of reading material on parallelism in Haskell to help you get started
- The Snap guys are getting 45k req/sec on their 4 way box, by using all the cores.
- Even the Erlang guys are taking notice.
- Meanwhile, there is work to make the IO manager more scalable -- now with a paper on the design :: PDF.
- We're out there teaching people too .. all .. over .. the ... place.
- Starling Software wrote about their real time, multicore financial trading system in Haskell.
- Ericsson published a parallel language for DSP based on, and written in Haskell
- Galois published an implementation of Orc, a concurrent workflow language, in Haskell.
- And a new library for fast regular, parallel arrays appeared
- And Haskell continues to do well on the quad-core shootout.
- Snap, a multicore-enabled scalable web server with great performance numbers
- haskell-torrent - benchmarking a mulitcore-enabled bittorrent client in Haskell
- Haskell code was published at Supercomputing 09 -- our first appearance at SC!
Don Stewart
2010-06-17 16:41:08
Posted so there's a place to record the evolving answer to this common question.
Don Stewart
2010-06-17 16:41:33
yairchu
2010-06-17 18:24:16
Is the "new scalable thread event manager" part of a GHC *released* version yet?
gawi
2010-10-09 02:36:51
gawi: it is part of GHC 7. The release candidate for that was put out two weeks ago.
Don Stewart
2010-10-09 16:43:25