Strategies +Control.Parallel -package

module Control.Parallel.Strategies
parallel Control.Parallel.Strategies
Parallel Evaluation Strategies, or Strategies for short, provide ways to express parallel computations. Strategies have the following key features: * Strategies express deterministic parallelism: the result of the program is unaffected by evaluating in parallel. The parallel tasks evaluated by a Strategy may have no side effects. For non-deterministic parallel programming, see Control.Concurrent. * Strategies let you separate the description of the parallelism from the logic of your program, enabling modular parallelism. The basic idea is to build a lazy data structure representing the computation, and then write a Strategy that describes how to traverse the data structure and evaluate components of it sequentially or in parallel. * Strategies are compositional: larger strategies can be built by gluing together smaller ones. * Monad and Applicative instances are provided, for quickly building strategies that involve traversing structures in a regular way. For API history and changes in this release, see Control.Parallel.Strategies#history.