Simon Marlow has spent the last 12 years implementing Haskell. He is responsible for large parts of the Glasgow Haskell Compiler (GHC), in particular its multicore runtime system. Simon has also been involved in the design of Haskell itself, as co-chair of the Haskell 2010 committee.
Presentation: "Multicore programming in Haskell"
Track: The Concurrency Challenge
Time: Friday 12:00 - 13:00
Location: Fleming Room
The key to unlocking accessible concurrent programming lies in controlling interactions: to run a program in parallel we have to understand the interactions between the parallel tasks. Many of the better concurrent programming models rely on reducing interactions. In message passing, for example, interactions only occur through messages.
Haskell is a pure functional lanugage, which means that the default is zero interaction, and access to state is tightly controlled by the type system. So it should come as no surprise that Haskell is establishing itself not only as a testbed for concurrent programming models, but also as a realistic platform for multicore programming.
In this talk I'll give a tour of concurrency from the Haskell viewpoint through various practical examples. I'll explain why we believe there is no "one size fits all" concurrent programming model. Haskell provides thread-based concurrency with a choice of synchronisation mechanisms for situations where those models fit best, but also pure parallel programming models that are often a better choice when the goal is to parallelise a compute-intensive task.
Keywords: Concurrent Parallel Haskell Functional Programming Multicore
Target audience: Programmers interested in learning about different approaches to multicore programming.