What’s the status of multicore programming in Haskell? What projects, tools, and libraries are available now? What experience reports have there been?
In the 2009-2011 period, the following things have happened:
- From 2012, the parallel Haskell status updates began appearing in the Parallel Haskell Digest.
- Parallel and Concurrent Programming in Haskell, a tutorial. version 1.1 released by Simon Marlow
- Haskell and parallelism, mentioned in an article in the Economist magazine, Jun 2nd 2011.
- Parallel tree scans via composition, an article by Conal Elliott
- Numeric Haskell, a tutorial on parallel array programming with Repa, released
- Works has begun on extending GHC eventlog and Threadscope to support multi-process or distributed Haskell systems
- Parallel Haskell Digest: Edition 2.
- The par-monad package and a monad for deterministic parallelism, Simon Marlow — more control over pure parallelism than strategies/par/pseq.
- Cloud Haskell: Erlang-style message passing between distributed Haskell nodes.
- Parallel Haskell: Embracing Diversity, a talk by SPJ.
- Real time edge detection in parallel Haskell
- Parallel Haskell Digest: news on parallel Haskell
- Composable parallel scanning
- Haskell-MPI is released
- Parallel futures for Haskell, in GHC.
- 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.
- 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 (PDF)
- 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!