A library for parallel programming based on a monad.
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 thePar
monad.monad-par-extras
provides extra combinators and monad transformers layered on top of thePar
monad.
Changes in 0.3.4 relative to 0.3:
Fix bugs that cause "thread blocked indefinitely on MVar" crashes.
Added
Control.Monad.Par.IO