Journal article Open Access
August Ernstsson; Johan Ahlqvist; Stavroula Zouzoula; Christoph Kessler
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 func-
tions, 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 contain-
ers’ 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.