The Par
monad offers a simple API for parallel programming. The
library works for parallelising both pure and IO
computations,
although only the pure version is deterministic. The default
implementation provides a work-stealing scheduler and supports
forking tasks that are much lighter weight than IO-threads.
For complete documentation see Control.Monad.Par
.
Some examples of use can be found in the examples/
directory of
the source package.
Other related packages:
abstract-par
provides the type classes that abstract over different
implementations of the Par
monad.
monad-par-extras
provides extra combinators and monad transformers layered on top of
the Par
monad.
Changes in 0.3.4 relative to 0.3: