License: Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported license (CC BY-NC-ND 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.FSTTCS.2008.1769
URN: urn:nbn:de:0030-drops-17697
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2008/1769/
Go to the corresponding LIPIcs Volume Portal


Peyton Jones, Simon ; Leshchinskiy, Roman ; Keller, Gabriele ; Chakravarty, Manuel M T

Harnessing the Multicores: Nested Data Parallelism in Haskell

pdf-format:
08004.PeytonJonesSimon.1769.pdf (0.6 MB)


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 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 paper
we describe Data Parallel Haskell, which embodies nested data
parallelism in a modern, general-purpose language, implemented in a
state-of-the-art compiler, GHC. We focus particularly on the
vectorisation transformation, which transforms nested to flat data
parallelism.

BibTeX - Entry

@InProceedings{peytonjones_et_al:LIPIcs:2008:1769,
  author =	{Simon Peyton Jones and Roman Leshchinskiy and Gabriele Keller and Manuel M T Chakravarty},
  title =	{{Harnessing the Multicores: Nested Data Parallelism in Haskell}},
  booktitle =	{IARCS Annual Conference on Foundations of Software Technology and Theoretical Computer Science},
  pages =	{383--414},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-939897-08-8},
  ISSN =	{1868-8969},
  year =	{2008},
  volume =	{2},
  editor =	{Ramesh Hariharan and Madhavan Mukund and V Vinay},
  publisher =	{Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{http://drops.dagstuhl.de/opus/volltexte/2008/1769},
  URN =		{urn:nbn:de:0030-drops-17697},
  doi =		{10.4230/LIPIcs.FSTTCS.2008.1769},
  annote =	{Keywords: Nested data parallelism, Vectorisation, Haskell, Program transformation}
}

Keywords: Nested data parallelism, Vectorisation, Haskell, Program transformation
Collection: IARCS Annual Conference on Foundations of Software Technology and Theoretical Computer Science
Issue Date: 2008
Date of publication: 05.12.2008


DROPS-Home | Fulltext Search | Imprint | Privacy Published by LZI