SkePU 2: Flexible and Type-Safe Skeleton Programming for Heterogeneous Parallel Systems
Autor: | August Ernstsson, Lu Li, Christoph Kessler |
---|---|
Jazyk: | angličtina |
Rok vydání: | 2018 |
Předmět: |
Flexibility (engineering)
020203 distributed computing Programming language Computer science Interface (Java) Computer Sciences Skeleton programming SkePU Source-to-source transformation C++11 Heterogeneous parallel systems Portability 020207 software engineering 02 engineering and technology Parallel computing computer.software_genre Theoretical Computer Science Software portability CUDA Transformation (function) Datavetenskap (datalogi) Theory of computation Type safety 0202 electrical engineering electronic engineering information engineering Compiler computer Software Information Systems |
Popis: | In this article we present SkePU 2, the next generation of the SkePU C++ skeleton programming framework for heterogeneous parallel systems. We critically examine the design and limitations of the SkePU 1 programming interface. We present a new, flexible and type-safe, interface for skeleton programming in SkePU 2, and a source-to-source transformation tool which knows about SkePU 2 constructs such as skeletons and user functions. We demonstrate how the source-to-source compiler transforms programs to enable efficient execution on parallel heterogeneous systems. We show how SkePU 2 enables new use-cases and applications by increasing the flexibility from SkePU 1, and how programming errors can be caught earlier and easier thanks to improved type safety. We propose a new skeleton, Call, unique in the sense that it does not impose any predefined skeleton structure and can encapsulate arbitrary user-defined multi-backend computations. We also discuss how the source-to-source compiler can enable a new optimization opportunity by selecting among multiple user function specializations when building a parallel program. Finally, we show that the performance of our prototype SkePU 2 implementation closely matches that of SkePU 1. Funding Agencies|EU; SeRC; Swedish National Graduate School in Computer Science (CUGS); SNIC [2016/5-6] |
Databáze: | OpenAIRE |
Externí odkaz: |