Chapter 9. Parallel and Concurrent Design
In this chapter, we will cover the following recipes:
- Using the Haskell Runtime System (RTS) options
- Evaluating a procedure in parallel
- Controlling parallel algorithms in sequence
- Forking I/O actions for concurrency
- Communicating with a forked I/O action
- Killing forked threads
- Parallelizing pure functions using the Par monad
- Mapping over a list in parallel
- Accessing tuple elements in parallel
- Implementing MapReduce to count word frequencies
- Manipulating images in parallel using Repa
- Benchmarking runtime performance in Haskell
- Using the criterion package to measure performance
- Benchmarking runtime performance in the terminal