
On 07/09/2010, at 6:11 PM, Johannes Waldmann wrote:
Mathew de Detrich
writes: Haskell is still by far one of the best languages to deal with concurrency/parallelism.
Sure, I fully agree.
I am using concurrency (with explicit forkIO, communication via Chan) a lot (my Haskell application controls several external constraint solvers).
For parallelism, I'm just missing some benchmark code that I can run on my machine (i7 CPU, GTX 295 GPU, ghc-6.12.3) more or less "out-of-the-box" and that will impress my students and myself. (That is, get a speed-up of 8, or 480, without the program looking 8 times (or 480 times) more ugly...)
The matrix-matrix multiplication benchmark from the Repa library does this. Check out http://www.cse.unsw.edu.au/~benl/papers/repa/repa-icfp2010.pdf http://hackage.haskell.org/package/repa http://hackage.haskell.org/package/repa-examples Though be warned you must use a recent GHC head build to get good performance. After GHC 7.0 is out (in a few weeks) we'll be able to release a properly stable version. Note that "speedup" is an important consideration, but not the end of the story. It's harder to find a benchmark that displays all of nice code + speedup + good absolute performance. The first and last of these tend not to be friends. Ben.