packages feed

pooled-io-0.0.2.4: pooled-io.cabal

Cabal-Version:    2.2
Name:             pooled-io
Version:          0.0.2.4
License:          BSD-3-Clause
License-File:     LICENSE
Author:           Henning Thielemann <haskell@henning-thielemann.de>
Maintainer:       Henning Thielemann <haskell@henning-thielemann.de>
Homepage:         https://hub.darcs.net/thielema/pooled-io/
Category:         Parallelism
Synopsis:         Run jobs on a limited number of threads and support data dependencies
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@:
Tested-With:      GHC==7.4.2, GHC==7.8.4, GHC==7.10.1
Build-Type:       Simple

Flag buildExamples
  description: Build example executables
  default:     False

Source-Repository this
  Tag:         0.0.2.4
  Type:        darcs
  Location:    https://hub.darcs.net/thielema/pooled-io/

Source-Repository head
  Type:        darcs
  Location:    https://hub.darcs.net/thielema/pooled-io/

Library
  Build-Depends:
    concurrent-split >=0.0 && <0.1,
    transformers >=0.2.2 && <0.7,
    deepseq >=1.3 && <1.7,
    unsafe >=0.0 && <0.1,
    containers >=0.4 && <0.9,
    utility-ht >=0.0.9 && <0.1,
    base >=4 && <5

  Default-Language: Haskell98
  GHC-Options:      -Wall
  Hs-Source-Dirs:   src
  Exposed-Modules:
    Control.Concurrent.PooledIO.Independent
    Control.Concurrent.PooledIO.Final
    Control.Concurrent.PooledIO.InOrder
    Control.Concurrent.PooledIO.Sequence
  Other-Modules:
    Control.Concurrent.PooledIO.Monad

Executable pooled-io-demo
  If flag(buildExamples)
    Build-Depends:
      pooled-io,
      base
  Else
    Buildable: False

  Default-Language: Haskell98
  GHC-Options:      -Wall -threaded
  Main-Is:          example/Main.hs