DEFUN 2009: Multicore Programming in Haskell Now!

Here are the

for today’s DEFUN tutorial: Multicore Programming in Haskell Now!

Multicore computers are here: is your programming language ready for it?

Haskell is: 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
  • data parallelism

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 half-day tutorial will teach intermediate functional programmers with no previous parallel programming experience how to write, reason about and run parallel Haskell programs, using a range of parallel programming models. Each model will be introduced with motivating examples, and exercises to develop familarity with the model in question. By the end you should have an understanding of which parallelism abstraction to use in which circumstance, and be able to go to work writing multicore capable programs in Haskell.

5 thoughts on “DEFUN 2009: Multicore Programming in Haskell Now!

  1. Hey Don, thanks for a truly excellent hand-on session. I can definitely recommend everyone to read the slides and look through the examples for some great stuff on parallel programming.

  2. Seconded, great tutorial! (Maybe a tad too much material to squeeze into the time available? I found the pace challenging at points, e.g. nested data parallelism).

  3. Don, yours was my favorite session all week. I’d gladly attend an identical presentation again. Many thanks for doing such great prep work. Cheers.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s