Algorithmic skeletons for multi-core, multi-GPU systems and clusters

Ernsting Steffen, Kuchen Herbert


Zusammenfassung
Due to the lack of high-level abstractions, developers of parallel applications have to deal with low-level details such as coordinating threads or synchronising processes. Thus, parallel programming still remains a difficult and error-prone task. In order to shield the user from these low-level details, algorithmic skeletons have been proposed. They encapsulate typical parallel programming patterns and have emerged to be an efficient approach to simplifying the development of parallel applications. In this paper, we present our skeleton library Muesli, which not only simplifies parallel programming. Additionally, it allows to write a single application that may be executed on a variety of parallel machines ranging from simple multi-core processors with shared memory to clusters of multi- and many-core processors with distributed memory as well as multi-GPU systems and GPU clusters. The level of platform independence is not reached by other existing approaches, that simplify parallel programming. Internally, the skeletons are based on MPI, OpenMP and CUDA. We demonstrate portability and efficiency of our approach by providing experimental results.

Schlüsselwörter
algorithmic skeletons, distributed computing, GPU, parallel programming, high performance computing



Publikationstyp
Aufsatz (Zeitschrift)

Begutachtet
Ja

Publikationsstatus
Veröffentlicht

Jahr
2012

Fachzeitschrift
International Journal of High Performance Computing and Networking

Band
7

Ausgabe
2

Erste Seite
129

Letzte Seite
138

Seiten
129-138

Sprache
Englisch

ISSN
1753-3309

DOI