Intel Concurrent Collections for Haskell
Intel Concurrent Collections…provides a mechanism for constructing [programs] that will execute in parallel while allowing the application developer to ignore issues of parallelism such as low-level threading constructs or the scheduling and distribution of computations. The model allows the programmer to specify high-level computational steps including inputs and outputs without imposing unnecessary ordering on their execution… Data is either local to a computational step or it is explicitly produced and consumed by them. An application in this programming model supports multiple styles of parallelism (e.g., data, task, pipeline parallel). While the interface between the computational steps and the runtime system remains unchanged, a wide range of runtime systems may target different architectures (e.g., shared memory, distributed) or support different scheduling methodologies (e.g., static or dynamic).
In short CnC purports to be a “a graph-based data-flow-esque deterministic parallel programming model”. An open-source Haskell edition of the software was recently released on Hackage.
Personally, I would have preferred a more concise and down to earth description on the whole thing. If you have experiences to share, please do.