monad-par-0.3: monad-par.cabal
Name: monad-par
Version: 0.3
Synopsis: A library for parallel programming based on a monad
-- Version history:
-- 0.1 : First release
-- 0.1.0.1 :
-- 0.1.0.2 :
-- 0.1.1.0 : module reorganization, moving ParClass
-- 0.2 : Bumped for new class-based API
-- 0.2.1 : Bumped for change AList
-- 0.2.2 : incorporation of real deque package
-- 0.2.3 : Restricted module export for 0.2 release.
-- 0.3 : Factored/reorganized modules and packages.
-- *This* package is the original, core monad-par.
Description: This library offers an alternative parallel programming
API to that provided by the @parallel@ package.
A 'Par' monad allows the simple description of
parallel computations, and can be used to add
parallelism to pure Haskell code. The basic API
is straightforward: the monad supports forking
and simple communication in terms of 'IVar's.
The library comes with a work-stealing
implementation, but the internals are also
exposed so that you can build your own scheduler
if necessary.
Examples of use can be found in the examples/ directory
of the source package.
The modules below provide additionaly schedulers,
data structures, and other added capabilities
layered on top of the 'Par' monad.
-- * Finish These
-- * Module Descriptions
Homepage: https://github.com/simonmar/monad-par
License: BSD3
License-file: LICENSE
Author: Simon Marlow
Maintainer: Simon Marlow <marlowsd@gmail.com>
Copyright: (c) Simon Marlow 2011
Stability: Experimental
Category: Control,Parallelism,Monads
Build-type: Simple
Cabal-version: >=1.8
extra-source-files:
tests/AListTest.hs
tests/AllTests.hs
tests/AsyncTest.hs
tests/Makefile
tests/ParTests.hs
tests/TestHelpers.hs
tests/TestParDist.hs
tests/Test_ContReaderT.hs
tests/Test_ReaderContT.hs
tests/hs_cassandra_microbench.hs
tests/hs_cassandra_microbench2.hs
Library
Exposed-modules:
-- The classic, simple monad-par interface:
Control.Monad.Par
-- This is the default scheduler:
, Control.Monad.Par.Scheds.Trace
, Control.Monad.Par.Scheds.TraceInternal
-- Replacement scheduler for Trace:
, Control.Monad.Par.Scheds.Direct
-- This scheduler uses sparks rather than IO threads.
-- It only supports Futures, not full IVars:
, Control.Monad.Par.Scheds.Sparks
Build-depends: base >= 4 && < 5
-- This provides the interface which monad-par implements:
, abstract-par
, abstract-deque >= 0.1.4
-- Extras such as parMap, RNG, State
, monad-par-extras == 0.3.*
, deepseq >= 1.1
, array >= 0.3
, mwc-random >= 0.11
, containers
, parallel >= 3.1
, mtl >= 2.0.1.0
ghc-options: -O2
Other-modules:
------------------------------------------------------------
-- Schedulers & Infrastructure --
------------------------------------------------------------
-- Strawman scheduler that forks IO threads:
-- Control.Monad.Par.Scheds.ContFree,
-- Internal logging framework:
-- Control.Monad.Par.Logging,
-- Serial Elision is currently experimental:
-- Control.Monad.Par.Scheds.SerialElision
------------------------------------------------------------
-- Data Structures --
------------------------------------------------------------
-- ILists are internal:
-- , Control.Monad.Par.IList
-- RRN: Not exposing Streams or OpenLists yet. Need to improve performance.
-- We have some ideas for enabling bounded chans while preventing deadlock:
-- , Control.Monad.Par.OpenList
-- , Control.Monad.Par.Stream
Test-Suite test-monad-par
type: exitcode-stdio-1.0
main-is: tests/AllTests.hs
ghc-options: -itests -rtsopts -threaded
build-depends: base >= 4 && < 5
, abstract-par, monad-par-extras
, array >= 0.3
, deepseq >= 1.2
, time
, QuickCheck, HUnit
, test-framework-hunit, test-framework-quickcheck2
, test-framework, test-framework-th
-- , binary