haskell-cnc: Library for parallel programming in the Intel Concurrent Collections paradigm.

[ bsd3, control, library, parallelism, program ] [ Propose Tags ]

Intel (Concurrent Collections) CnC is a data-flow like deterministic parallel programming model, similar to stream-processing but in which nodes in the computation graph share data in tables.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1, 0.1.1, 0.1.2, 0.1.3, 0.1.3.1, 0.1.3.200
Dependencies array, base (>=3 && <5), containers, directory, extensible-exceptions, ghc-prim, HUnit, mtl, process, QuickCheck, random, time [details]
License LicenseRef-LGPL
Copyright Copyright (c) 2009-2010 Intel Corporation
Author Ryan Newton <rrnewton@gmail.com>
Maintainer Ryan Newton <rrnewton@gmail.com>
Category system, concurrent
Home page http://software.intel.com/en-us/articles/intel-concurrent-collections-for-cc/
Uploaded by RyanNewton at 2010-05-28T06:43:56Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Executables haskell-cnc-runTests
Downloads 4892 total (15 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for haskell-cnc-0.1.2

[back to package description]

 Intel Concurrent Collections for Haskell
 ----------------------------------------
 Author: Ryan Newton, Copyright 2009-2010


This directory contains an implementation of the Intel Concurrent
Collections programming model (CnC) for Haskell.  It works only with
GHC.

If you are looking in this directory, you are probably not using this
package through cabal.  Currently, it contains a Makefile and other
scripts that are redundant with the cabal file and will be removed in
the future.

Quick Start:
-----------------------------------------
 On Unix(ish) systems with a Bash shell, try this:

  source install_environment_vars.sh
  runcnc examples/primes.hs

You can also rerun the primes executable directly after that
(primes.exe).  To run with a particular number of threads, say 8, try:
  ./primes.exe +RTS -N8



------------------------------------------------------------
Installing Haskell CnC 
------------------------------------------------------------

  cabal install haskell-cnc

------------------------------------------------------------a
Running Haskell CnC, Method (1): Normal method.
------------------------------------------------------------

CnC for Haskell can be used as a regular Haskell module.  
Look at "hello_world.hs" in the examples directory.


------------------------------------------------------------
Running Haskell CnC, Method (2): Inlined library.
------------------------------------------------------------

For testing purposes, Haskell CnC can inline the library and enable
the user to choose between different scheduling options and runtime
parameters statically.  Under this methodology the "runcnc" script is
used to compile and execute CnC programs.  The following environment
variable must be set:

 HASKELLCNC -- should be set to the install directory.
            (Sourcing install_environment_vars.sh is one way to
             accomplish this.)


Preprocessor variables:

 MEMOIZE    Turns on memoization of steps over tags.
            This is frequently done on a per-program basis using
            "#define MEMOIZE".

 REPEAT_PUT_ALLOWED 
            Are multiple put's into an item collection with
            the same tag valid or an error?                       

 CNC_VARIANT     Which implementation?  'pure' or 'io'?
 CNC_SCHEDULER   Which scheduler within that implementation? (1-N)
            These can also be set as environment variables when using
            runcnc.

 INCLUDEMETHOD
            ignore this, it's internal and is used for switching 
            between schedulers-as-modules or schedulers-as-includes