More about Haskell and Intel Concurrent Collections

Last week I tweeted from Intel Developer Forum with the tantalising news that there is a version of Concurrent Collections for Haskell in development. Today, I have more news from its creator about the implementation, and when we can expect to see it.

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.”

Ryan has implemented two versions of a CnC library for GHC.  One is a pure version that relies only on “par” for parallelism.  The other uses forkIO and a mutable formulation of collections.  He says they both expose the same monadic interface and run the same client code.

“There are some particularly interesting scheduling possibilities with the pure version,” says Ryan. “Because it uses functional updates to the ‘world’, we can potentially have a looser coherence model.”

The software is pencilled in for release sometime next month,before the next major release of Concurrency Collections comes out in Q1 next year. The first release will be a sample implementation through whatif.intel.com, and an opportunity for the Haskell community to offer feedback on the implementation and suggest any ways it could be enhanced. The licence is to be open source.

I’ll let you know when I hear more!

8 Responses

  1. […] More about Haskell and Intel Concurrent Collections Last week I tweeted from Intel Developer Forum with the tantalising news that there is a version of Concurrent […] […]

  2. I look forward to seeing the Haskell version!

    Personally, I think it’s great to see Intel paying more attention to pure functional languages in their multicore research. Is there anything else like this? The current focus does appear to be very C/C++ oriented.

    Even as a dyed-in-the-wool C++ games developer, I’m not relishing the prospect of multicore development with C++.

  3. Hi Sam.

    Yes, it’s good to see more language choices coming out. James Reinders mentioned Haskell and Erlang in another session at Intel Developer Forum too, and said there was interesting stuff coming out of those communities, so I think Intel is keeping an eye on all the key developments.

    I think Intel is aiming to strike a balance between bringing in the best new ideas and ensuring there is continuity for the majority of developers, so C++ will probably play a role for a while. It will be interesting to watch Microsoft’s response to Haskell, too.

  4. […] 27/10/2009 There’s been a lot of buzz about Haskell recently, with an experimental version of Intel Concurrency Collections for Haskell in development and the release of Axum stimulating debate about whether we need new programming languages to […]

  5. […] been a lot of buzz about Haskell recently, with an experimental version of Intel Concurrency Collections for Haskell in development and the release of Axum stimulating debate about whether we need new programming languages to […]

  6. Hi all,

    Thanks for the interest in Concurrent Collections for Haskell. It’s just been released. More details can be found in this post:

    http://software.intel.com/en-us/blogs/2010/05/27/announcing-intel-concurrent-collections-for-haskell-01/

  7. […] Intel Concurrent Collections for Haskell Posted on 22/06/2010 by softtalkblog There was some buzz when I mentioned last year that Intel was working on bringing Concurrent Collections to Ha…. Intel Concurrent Collections (CnC) is already available for Java and C++ and aims to make it […]

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: