EXA2PRO: Programming Environments for Exascale
Insulating application developers from details of the underlying hardware architecture is expected to become more and more challenging towards exascale. Parallelism will increase but will be organized in different ways, i.e. different number of CPU cores and various vector and SIMD instruction sets with different lengths. Tight limits on the power budget will favour the use of compute accelerators like GPUs. Reconfigurable devices like FPGAs could also play an important role here. The new three-year EU-funded EXA2PRO project addresses this challenge by developing a programming environment with a particular focus on the productivity of application developers.
EXA2PRO’s approach is based on the use of skeletons and multi-variant components. Skeletons are predefined generic program building blocks for frequently occurring computation patterns such as data-parallel map, reduce, scan, stencil etc., for which efficient platform-specific implementations may exist. Where existing skeletons do not fit, multi-variant components are foreseen as alternatives. These are abstractions of functions with multiple implementation variants. Skeletons and multi-variant components are integrated through a composition framework that interacts with a runtime system and support library. The latter will support different hardware back-ends ranging from standard CPUs over GPUs to FPGAs.
The project consortium comprises universities and research labs from France, Germany, Greece, and Sweden as well as Maxeler Technologies with sites in the UK and the Netherlands. EXA2PRO is coordinated by the Institute of Communications and Computer Systems in Athens. For further information, visit https://exa2pro.eu.
from JSC News No. 260, 17 September 2018