Parallel and Concurrent Programming in Haskell: Techniques for Multicore and Multithreaded Programming
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:
Chapter 1. Introduction
Part I. Parallel Haskell
Chapter 2. Basic Parallelism: The Eval Monad
Chapter 3. Evaluation Strategies
Chapter 4. Dataflow Parallelism: The Par Monad
Chapter 5. Data Parallel Programming with Repa
Chapter 6. GPU Programming with Accelerate
Part II. Concurrent Haskell
Chapter 7. Basic Concurrency: Threads and MVars
Chapter 8. Overlapping Input/Output
Chapter 9. Cancellation and Timeouts
Chapter 10. Software Transactional Memory
Chapter 11. Higher-Level Concurrency Abstractions
Chapter 12. Concurrent Network Servers
Chapter 13. Parallel Programming Using Threads
Chapter 14. Distributed Programming
Chapter 15. Debugging, Tuning, and Interfacing with Foreign Code