Data Parallel Haskell
Principal Researcher, Microsoft Research
Simon Peyton Jones introduces nested data parallelism, originally developed by Blelloch and Sabot, as a model combining high parallelism with a simple programming interface. He discusses its implementation challenges and advantages within a purely functional language like Haskell.
There are many approaches to exploiting multi-cores, 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. Indeed, I think that data parallelism is the only way we will be able to exploit tens or hundreds of processors effectively.
Alas, data-parallel programming is usually restricted to "flat" data parallelism, which is good for implementers but bad for programmers. Instead, I'll describe the "nested" data parallel programming model, first developed in the 90's by Blelloch and Sabot. It is great for programmers but much harder to implement; as a result, it's virtually unknown in practice. It's really only feasible to support nested data parallelism in a purely functional language, so we are building a high-performance implementation in Haskell.
Seminar notes & discussion
No public seminar notes on this lecture yet.
