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
Par
andParIO
monads 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 differentPar
implementationsrepa: 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...