Hostname: page-component-6766d58669-tq7bh Total loading time: 0 Render date: 2026-05-21T05:35:35.885Z Has data issue: false hasContentIssue false

PAEAN: Portable and scalable runtime support for parallel Haskell dialects

Published online by Cambridge University Press:  13 July 2016

JOST BERTHOLD*
Affiliation:
Dept. of Computer Science (DIKU), University of Copenhagen, Commonwealth Bank of Australia, Sydney (e-mail: jberthold@acm.org)
HANS-WOLFGANG LOIDL
Affiliation:
School of Mathematical and Computer Sciences, Heriot-Watt University (e-mail: hwloidl@macs.hw.ac.uk)
KEVIN HAMMOND
Affiliation:
School of Computer Science, University of St.Andrews (e-mail: kevin@kevinhammond.net)
*
*Corresponding author. Reported work performed while at the University of Copenhagen (DIKU).
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

Over time, several competing approaches to parallel Haskell programming have emerged. Different approaches support parallelism at various different scales, ranging from small multicores to massively parallel high-performance computing systems. They also provide varying degrees of control, ranging from completely implicit approaches to ones providing full programmer control. Most current designs assume a shared memory model at the programmer, implementation and hardware levels. This is, however, becoming increasingly divorced from the reality at the hardware level. It also imposes significant unwanted runtime overheads in the form of garbage collection synchronisation etc. What is needed is an easy way to abstract over the implementation and hardware levels, while presenting a simple parallelism model to the programmer. The PArallEl shAred Nothing runtime system design aims to provide a portable and high-level shared-nothing implementation platform for parallel Haskell dialects. It abstracts over major issues such as work distribution and data serialisation, consolidating existing, successful designs into a single framework. It also provides an optional virtual shared-memory programming abstraction for (possibly) shared-nothing parallel machines, such as modern multicore/manycore architectures or cluster/cloud computing systems. It builds on, unifies and extends, existing well-developed support for shared-memory parallelism that is provided by the widely used GHC Haskell compiler. This paper summarises the state-of-the-art in shared-nothing parallel Haskell implementations, introduces the PArallEl shAred Nothing abstractions, shows how they can be used to implement three distinct parallel Haskell dialects, and demonstrates that good scalability can be obtained on recent parallel machines.

Information

Type
Articles
Copyright
Copyright © Cambridge University Press 2016 
Submit a response

Discussions

No Discussions have been published for this article.