Parallel and Concurrent Programming in Haskell

Techniques for Multicore and Multithreaded Programming

Book Description:

If you have a working knowledge of Haskell, this hands-on book shows you how to use the language’s many APIs and frameworks for writing both parallel and concurrent programs. You’ll learn how parallelism exploits multicore processors to speed up computation-heavy programs, and how concurrency enables you to write programs with threads for multiple interactions.

Author Simon Marlow walks you through the process with lots of code examples that you can run, experiment with, and extend. Divided into separate sections on Parallel and Concurrent Haskell, this book also includes exercises to help you become familiar with the concepts presented:

Express parallelism in Haskell with the Eval monad and Evaluation Strategies
Parallelize ordinary Haskell code with the Par monad
Build parallel array-based computations, using the Repa library
Use the Accelerate library to run computations directly on the GPU
Work with basic interfaces for writing concurrent code
Build trees of threads for larger and more complex programs
Learn how to build high-speed concurrent network servers
Write distributed programs that run on multiple machines in a network