17947

SkePU 2: Flexible and Type-Safe Skeleton Programming for Heterogeneous Parallel Systems

August Ernstsson, Christoph Kessler
PELAB, Department of Computer and Information Science, Linkoping University, Linkoping, Sweden
International Journal of Parallel Programming, Volume 46, Issue 1, pp 62-80, 2018

@article{ernstsson2018skepu,

   title={SkePU 2: Flexible and type-safe skeleton programming for heterogeneous parallel systems},

   author={Ernstsson, August and Li, Lu and Kessler, Christoph},

   journal={International Journal of Parallel Programming},

   volume={46},

   number={1},

   pages={62–80},

   year={2018},

   publisher={Springer}

}

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.
Rating: 2.0/5. From 1 vote.
Please wait...

* * *

* * *

HGPU group © 2010-2018 hgpu.org

All rights belong to the respective authors

Contact us: