Tech Mesh London 2012
Duncan Coutts, TweetHaskell consultant with Well-Typed LLP

Biography: Duncan Coutts
Duncan has more than ten years programming experience with Haskell. He is a well known member of the Haskell community. He helps maintain several popular libraries and tools including Cabal and bytestring. He has several years experience in packaging the Haskell toolchain and took a leading role in establishing the Haskell Platform.
He holds a first class degree in Computation and a D.Phil in Computer Science, both from Oxford University. He has published papers at international conferences, including ICFP. His research focus is on generating high performance code from idiomatic high level Haskell code. This included co-authoring the bytestring and binary libraries and work on stream fusion for lists. He has five years experience teaching computer science, including four years teaching Haskell to mature students at graduate level.
Presentation: TweetMulti-core with less Pain: Deterministic Parallel Programming with Haskell
You want to make your code run faster, so you think about changing it to run in parallel to use multiple cores. But most approaches to parallelism also force you to rewrite your program using explicit concurrency which means you'll always worry about race conditions, deadlocks and other concurrency bugs. Deterministic parallelism frees you from concurrency bugs and gives a strong guarantee that your program remains deterministic, so it will give the same result no matter the number of cores or the scheduling being used.
Haskell offers a variety of libraries for deterministic parallelism that enable concise high-level parallel programs. In this talk we will look at the idea of parallelism without concurrency and give an overview of the paradigms that Haskell offers in this area.
Talk objectives: The point of the talk is to understand the distinction between parallelism and concurrency and see how functional programming lets us achieve the benefits of parallelism without forcing us into using concurrency. We will see a few different approaches to deterministic parallelism and you should get a sense of which approach to use for which kind of problem, or indeed when concurrency is the best approach.
Target audience: If you're interested in multi-core parallelism or functional programming then you should get something out of this talk.