SkePU 3: Portable High-Level Programming of Heterogeneous Systems and HPC Clusters

August Ernstsson,Johan Ahlqvist,Stavroula Zouzoula,Christoph Kessler
DOI: https://doi.org/10.1007/s10766-021-00704-3
2021-05-19
International Journal of Parallel Programming
Abstract:Abstract We present the third generation of the C++-based open-source skeleton programming framework SkePU. Its main new features include new skeletons, new data container types, support for returning multiple objects from skeleton instances and user functions, support for specifying alternative platform-specific user functions to exploit e.g. custom SIMD instructions, generalized scheduling variants for the multicore CPU backends, and a new cluster-backend targeting the custom MPI interface provided by the StarPU task-based runtime system. We have also revised the smart data containers’ memory consistency model for automatic data sharing between main and device memory. The new features are the result of a two-year co-design effort collecting feedback from HPC application partners in the EU H2020 project EXA2PRO, and target especially the HPC application domain and HPC platforms. We evaluate the performance effects of the new features on high-end multicore CPU and GPU systems and on HPC clusters.
computer science, theory & methods
What problem does this paper attempt to address?