-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | GpH based backend for @Parallel-Arrows-Definition@ in a multicore variant. -- -- GpH based backend for Parallel-Arrows-Definition in a -- multicore variant. Use this backend for shared-memory programs. @package Parallel-Arrows-Multicore @version 0.1.1.0 module Parrows.Multicore -- | A Strategy is a function that embodies a parallel evaluation -- strategy. The function traverses (parts of) its argument, evaluating -- subexpressions in parallel or in sequence. -- -- A Strategy may do an arbitrary amount of evaluation of its -- argument, but should not return a value different from the one it was -- passed. -- -- Parallel computations may be discarded by the runtime system if the -- program no longer requires their result, which is why a -- Strategy function returns a new value equivalent to the old -- value. The intention is that the program applies the Strategy -- to a structure, and then uses the returned value, discarding the old -- value. This idiom is expressed by the using function. type Strategy a = a -> Eval a data Conf a Conf :: (Strategy a) -> Conf a defaultConf :: (NFData b) => [arr a b] -> Conf b stratToConf :: [arr a b] -> Strategy b -> Conf b instance Control.Arrow.ArrowChoice arr => Parrows.Definition.ArrowParallel arr a b (Parrows.Multicore.Conf b) instance (Control.Arrow.ArrowChoice arr, Parrows.Definition.ArrowParallel arr a b (Parrows.Multicore.Conf b)) => Parrows.Definition.ArrowLoopParallel arr a b (Parrows.Multicore.Conf b) instance Parrows.Future.Future Parrows.Future.BasicFuture a (Parrows.Multicore.Conf a) module Parrows.Multicore.Simple instance (Control.DeepSeq.NFData b, Control.Arrow.ArrowChoice arr, Parrows.Definition.ArrowParallel arr a b (Parrows.Multicore.Conf b)) => Parrows.Definition.ArrowParallel arr a b () instance (Control.DeepSeq.NFData b, Control.Arrow.ArrowChoice arr, Parrows.Definition.ArrowParallel arr a b (), Parrows.Definition.ArrowLoopParallel arr a b (Parrows.Multicore.Conf b)) => Parrows.Definition.ArrowLoopParallel arr a b () instance Parrows.Future.Future Parrows.Future.BasicFuture b ()