Package0.0.2.3Parallelism
pooled-io
Run jobs on a limited number of threads and support data dependencies
- Version0.0.2.3
- CategoryParallelism
- LicenceBSD-3-Clause
- AuthorHenning Thielemann <haskell@henning-thielemann.de>
- MaintainerHenning Thielemann <haskell@henning-thielemann.de>
- Homepagehub.darcs.net/thielema/pooled-io
- Pinned byhackage pooled-io 0.0.2.3
- Sourcehackage.haskell.org/package/pooled-io-0.0.2.3
Modules
4 modules- Control.Concurrent.PooledIO.Final4This module implements something similar to
- Control.Concurrent.PooledIO.InOrder4
- Control.Concurrent.PooledIO.Independent4
- Control.Concurrent.PooledIO.Sequence6Functions for sequencing actions requested from concurrent threads. Here is an example usage: import qualified Control.Concurrent.PooledI…
Description
The motivation for this package was to run computations on multiple cores that need to write intermediate results to disk. The functions restrict the number of simultaneously running jobs to a user given number or to the number of capabilities the Haskell program was started with, i.e. the number after the RTS option -N.
There are some flavors of this functionality:
Control.Concurrent.PooledIO.Independent: run independent actions without results in parallel Control.Concurrent.PooledIO.Final: run independent actions with a final result in parallel Control.Concurrent.PooledIO.InOrder: run jobs in parallel with data dependencies like make -j n
Additionally there is the module Control.Concurrent.PooledIO.Sequence that helps to serialize I/O actions from multiple threads. It is certainly most useful in connection with Control.Concurrent.PooledIO.Independent.
Related packages:
lazyio: interleave IO actions in a single thread async: start threads and wait for their results, forward exceptions, but do not throttle concurrency with respect to number of available cores parallel-tasks: parallel-io: threadPool: threads-pool: cio: Control-Engine: taskpool, async-pool:
Depends on
7 packages- base-4.20.2.0with GHC
- concurrent-split-0.0.1.1in this set
- containers-0.7with GHC
- deepseq-1.5.0.0with GHC
- transformers-0.6.1.1with GHC
- unsafe-0.0in this set
- utility-ht-0.0.17.2in this set
Used by in this set · 0
Nothing in this set depends on it.