Indicates that it may be beneficial to evaluate the first argument in parallel with the second. Returns the value of the second argument.
a `par` b is exactly equivalent semantically to b.
par is generally used when the value of a is likely to be required later, but not immediately. Also it is a good idea to ensure that a is not a trivial computation, otherwise the cost of spawning it in parallel overshadows the benefits obtained by running it in parallel.
Note that actual parallelism is only supported by certain implementations (GHC with the -threaded option, and GPH, for now). On other implementations, par a b = b.
Like evalBuffer but evaluates the list elements in parallel when pushing them into the buffer.
Evaluate each element of a list in parallel according to given strategy. Equivalent to parTraversable at the list type.
Divides a list into chunks, and applies the strategy evalList strat to each chunk in parallel.
It is expected that this function will be replaced by a more generic clustering infrastructure in the future.
If the chunk size is 1 or less, parListChunk is equivalent to parList
Like evalListN but evaluates the first n elements in parallel.
Like evalListN but evaluates the nth element in parallel.
A combination of parList and map, encapsulating a common pattern:
> parMap strat f = withStrategy (parList strat) . map f
Show more results