Session
Nested Data Parallelism in Haskell
Simon Peyton-Jones, Microsoft
Track: Programming
Date: Wednesday, July 25
Time: 1:45pm
- 2:30pm
Location: Portland 252
There are many approaches to exploiting multicores, but a particularly promising one is the "data-parallel" paradigm, because it combines massive parallelism (on both shared and distributed memory) with a simple, single-control-flow programming model.
Alas, data-parallel programming is usually restricted to "flat" data parallelism, which is good for implementers but bad for programmers. In particular, all the parallelism must appear at a single point, which excludes useful paradigms such as divide-and-conquer, and inhibits modular programming.
I'll describe the "nested" data parallel programming model, first developed in the 90's. It is great for programmers but much harder to implement; as a result, it's virtually unknown in practice. We are working on fixing this, by building a high-performance implementation in Haskell. I'll tell you how it works and give you some numbers.





















