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

Wrede Fabian, Rieger Christoph, Kuchen Herbert


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.



Publication type
Article in Journal

Peer reviewed
Yes

Publication status
Published

Year
2019

Journal
The Journal of Supercomputing

Volume
75

Start page
1

End page
19

ISSN
1573-0484

DOI

Full text