Parallel and concurrent programming
The libraries in this subsection are as follows:
Control.Concurrent (base): The basic concurrency primitives
parallel: Primitive parallel programming and parallel evaluation strategies
monad-par: Provides the
ParandParIOmonads for simple pure and IO parallel programmingabstract-par, monad-par-extras: Add-on libraries to
monad-par, that add extra combinators and a further abstraction layer over differentParimplementationsrepa: Data-parallel arrays
Parallel programming and the use and features of libraries parallel and monad-par is considered in Chapter 5, Parallelize for Performance. The RePa library is also featured in that chapter.
In short, the parallel library is used to express parallelism deterministically, and more importantly to separate parallelism from program logic. This enhances modularity and composition. The monad-par library, on the other hand, ties computation with its parallel evaluation, in return giving more control over how evaluation...