In June I had the opportunity to talk about approaches to parallel programming in Haskell at Open Source Bridge: “a new conference for developers working with open source technologies and for people interested in learning the open source way.”
Here are the slides (::PDF), and the source that accompanied the tutorial:
The abstract for the session:
Haskell is a functional language built for parallel and concurrent programming. You can take an off-the-shelf copy of GHC and write high performance parallel programs right now. This tutorial will teach you how to exploit parallelism through Haskell on your commodity multicore machine, to make your code faster. We will introduce key parallel programming models, as implemented in Haskell, including:
- semi-explicit parallelism via sparks
- explicit parallelism via threads and shared memory
- software transactional memory
and look at how to build faster programs using these abstractions. We will also look at the engineering considerations when writing parallel programs, and the tools Haskell provides for debugging and reasoning about parallel programs.
This is a hands on tutorial session: bring your laptops, there will be code!
3 thoughts on “Open Source Bridge Talk: Multicore Haskell Now”
Nice talk Don!
There’s a dead link on sheet 29.
(its …/package/parallel instead of …/packages/parallel)
Slide 53 advocates using asynchronous exceptions for message-passing. I hadn’t seen that before; is that a technique you have used often? I imagine it works well with primarily pure code and only the catching going on in the IO monad, but less well for heavily IO-monad-based programs, is that roughly accurate?
Oh, I don’t necessarily advocate the approach, I just point out it is possible. If you’re used to Erlang, for example.