Title
Harnessing the Multicores: Nested Data Parallelism in Haskell
Abstract
If you want to program a parallel computer, a purely functional language like Haskell is a promising starting point. Since the language is pure, it is by-default safe for parallel evaluation, whereas imperative languages are by-default unsafe. But that doesn't make it easy! Indeed it has proved quite difficult to get robust, scalable performance increases through parallel functional programming, especially as the number of processors increases. A particularly promising and well-studied approach to employing large numbers of processors is to use data parallelism. Blelloch's pioneering work on NESL showed that it was possible to combine a rather flexible programming model (nested data parallelism) with a fast, scalable execution model (flat data parallelism). In this talk I will describe Data Parallel Haskell, which embodies nested data parallelism in a modern, general-purpose language, implemented in a state-of-the-art compiler, GHC. I will focus particularly on the vectorisation transformation, which transforms nested to flat data parallelism, and I hope to present performance numbers.
Year
DOI
Venue
2008
10.1007/978-3-540-89330-1_10
FSTTCS
Keywords
Field
DocType
parallel computer,imperative language,general-purpose language,parallel functional programming,parallel evaluation,functional language,flat data parallelism,nested data parallelism,data parallelism,parallel haskell,functional programming,programming model
Instruction-level parallelism,Implicit parallelism,Programming language,NESL,Computer science,Task parallelism,Parallel computing,Parallel programming model,Data parallelism,Haskell,Scalable parallelism
Conference
Volume
ISSN
Citations 
5356
0302-9743
32
PageRank 
References 
Authors
1.33
21
4
Name
Order
Citations
PageRank
Simon L. Peyton Jones15036381.19
Roman Leshchinskiy232614.89
Gabriele Keller365736.02
Manuel M. T. Chakravarty466641.89