PAEAN: Portable Runtime Support for Physically-Shared-Nothing Architectures in Parallel Haskell Dialects

PAEAN is a new high-level, portable runtime support library for supporting shared-nothing implementations of parallel Haskell dialects. PAEAN abstracts over key issues such as task and data serialisation, providing a virtual shared-memory programming abstraction for (possibly) shared-nothing parallel machines, such as modern multicore architectures or cloud computing systems. It builds on and extends existing well-developed support for shared-memory parallelism that is provided by the widely-used GHC Haskell compiler. In contrast to other approaches, which delegate much system programming activity to the (functional) application programmer, PAEAN allows high-level support to be provided, including automatic task offloading and load balancing, distributed garbage collection and other high-level features. This paper introduces these features, shows how they can be implemented in two parallel Haskell dialects, and demonstrates that good scalability can be obtained on recent parallel machines.

Last modified: Sun Jun 30 17:40:27 2013