Sunday, November 29, 2009

More about Haskell and Intel Concurrent Collections.

Softtalk : Multicore and Paralell Programming

Excerpted from http://softtalkblog.wordpress.com/2009/09/29/more-about-haskell-and-intel-concurrent-collections/:

First, a few words about Concurrent Collections for C++, which is available for download now. It provides a way to build C++ programs that will execute in parallel, by just focusing on the high-level computation steps, inputs and outputs. The key benefit is that it means domain experts can create parallel programs without having to become experts in parallel programming. The tool can be used to create a single source that can be used with run-times targeted for different parallel architectures, and the programming model supports all styles of parallelism without any need for rewriting or recompiling.

At IDF, Intel announced Linux support for Concurrent Collections, and it was already available for Windows. There was, as I said, also mention of an implementation for Haskell. I’ve been in touch with Ryan Newton, the man at Intel responsible for it, and he says: “I’ve been working on Concurrent Collections (CnC) for Haskell as an experimental side project. The basic idea is that CnC is a system that (1) computes a pure function in parallel for each complete invocation (heterogeneous set of collections -> heterogeneous set of collections); and (2) requires that the individual kernels (“steps”) be pure functions. You can only leverage (1) and enforce (2) in Haskell, so it’s a natural fit. One of the goals was to learn what interesting scheduling ideas exist (e.g. idempotent work stealing) or might exist in the pure domain.”

No comments: