12th International Symposium on
High-Level Parallel Programming and Applications
July 3-5, 2019, Linköping, Sweden
Tutorial, 3 july 2019, 14:00-16:00
August Ernstsson, Linköping University:
High-level portable programming of heterogeneous systems using SkePU
Today's computer systems are increasingly heterogeneous and parallel,
and expose different (often, low-level) programming models to the user,
such as pthreads, OpenCL, CUDA or MPI. While this allows the
(technically skilled) programmer to better exploit the performance
potential of a given heterogeneous system, it
leads to problems in programmability
as well as in code and performance portability when
migrating to new heterogeneous systems and configurations.
As a high-level approach to portable multi-/manycore computing, we present SkePU, a C++ based high-level portable programming framework that provides a simple and unified programming interface for specifying computations with the help of so-called (algorithmic) skeletons. Skeletons are pre-defined generic software building blocks derived from higher-order functions such as map, farm, scan, stencil and reduce, which can be parameterized in problem-specific user code and which implement certain frequently occurring patterns of control and data flow for which efficient target-specific implementations may exist. The SkePU skeletons have multiple implementations targeting different platforms including multi-core CPU, GPU and multi-GPU systems and clusters, and can automatically learn from sample executions to automatically switch to the expected fastest implementation.
SkePU also provides STL-based data-containers that abstract from the memory hierarchy and distribution, and that dynamically optimize memory management, communication and access locality.
SkePU is open-source, relatively easy to install, and is being actively used in both research and in teaching parallel programming classes.
In this tutorial we introduce SkePU, including some of its more technical aspects, and demonstrate how high-level portable programs can be written in SkePU and deployed. We also provide a guided hands-on programming exercise for participants and help with the installation process where necessary (a binary distribution for x86 Linux will be provided for quick installation). Participants are encouraged to bring their laptop if doing the programming exercise.
About the speaker: August Ernstsson is the main developer of SkePU since 2016. He is a PhD student at the Department of Computer and Information Science of Linköping University.
Page responsible: Christoph Kessler
Last updated: 2019-06-13