Generation of high-performance code based on a domain-specific language for algorithmic skeletons

Wrede Fabian, Rieger Christoph, Kuchen Herbert

Research article (journal) | Peer reviewed

Abstract

Parallel programming can be difficult and error prone, in particular if low-level optimizations are required in order to reach high performance in complex environments such as multi-core clusters using MPI and OpenMP. One approach to overcome these issues is based on algorithmic skeletons. These are predefined patterns which are implemented in parallel and can be composed by application programmers without taking care of low-level programming aspects. Support for algorithmic skeletons is typically provided as a library. However, optimizations are hard to implement in this setting and programming might still be tedious because of required boiler plate code. Thus, we propose a domain-specific language for algorithmic skeletons that performs optimizations and generates low-level C++ code. Our experimental results on four benchmarks show that the models are significantly shorter and that the execution time and speedup of the generated code often outperform equivalent library implementations using the Muenster Skeleton Library.

Details about the publication

JournalThe Journal of Supercomputing
Volume75
Page range1-19
StatusPublished
Release year2020
Language in which the publication is writtenEnglish
DOI10.1007/s11227-019-02825-6
Link to the full texthttps://doi.org/10.1007/s11227-019-02825-6

Authors from the University of Münster

Kuchen, Herbert
Practical Computer Science Group (PI)
Rieger, Christoph
Practical Computer Science Group (PI)
Wrede, Fabian
Practical Computer Science Group (PI)