A Scalable Farm Skeleton for Heterogeneous Parallel Programming

Ernsting Steffen, Kuchen Herbert

Research article in edited proceedings (conference) | Peer reviewed

Abstract

Nowadays, multi-core processors and GPUs with thousands of cores are omnipresent. Fully exploiting their resources involves dealing with low-level concepts of parallel programming. These low-level concepts still constitute a high barrier to efficient development of parallel applications. That is why we need high-level tools for parallel programming. In order to assist programmers in developing performant and reliable parallel applications Algorithmic Skeletons have been proposed. They encapsulate well-defined, frequently recurring parallel programming patterns, thereby shielding programmers from low-level aspects of parallel programming. In this paper we take on the design and implementation of the well-known Farm skeleton. In order to address heterogeneous computing platforms we present a multi-tier implementation on top of MPI, OpenMP, and CUDA. On the basis of two benchmark applications, including an interacting particles system and a ray tracing application, we illustrate the advantages of both skeletal programming in general and this multi-tier approach in particular.

Details about the publication

PublisherBader, M, Bode A, Bungartz H-J, Gerndt M, Joubert G R, Peters F
Book titleParallel Computing: Accelerating Computational Science and Engineering (CSE)
Page range72-81
Title of seriesAdvances in Parallel Computing
Volume of series25
StatusPublished
Release year2013
Language in which the publication is writtenEnglish
ConferencePARCO 2013, München, undefined
ISBN978-1-61499-380-3
DOI10.3233/978-1-61499-381-0-72

Authors from the University of Münster

Ernsting, Steffen
Practical Computer Science Group (PI)
Kuchen, Herbert
Practical Computer Science Group (PI)