Abstract The pre- and exascale computational systems require new programming tools and solutions to develop and deploy applications. Most of them include heterogeneous devices and accelerators. Programming for these platforms generally requires mixing computations programmed using low-level or portability models with partition and communication mechanisms across nodes and devices to overlap computation and communication efficiently. A relevant class of scientific applications that requires this kind of solution to obtain a high degree of scalability are the ISL (Iterative Loop Stencil) applications. EPSILOD is a parallel skeleton for ISL applications targeting heterogeneous distributed systems. In this work, we present an extension of EPSILOD that enables a new range of applications using generic data types, a new domain-specific language for optimized kernel integration, and a new synchronization and communication scheme to increase scalability in Tier-0 computing facilities. We test the new solutions with simple 2D stencils and a 3D Lattice-Boltzmann application. We present an experimental study comparing EPSILOD with a low-level MPI+CUDA code, and with state-of-the-art solutions that simplify the programming in large-scale distributed heterogeneous environments: The Muesli skeleton library and Celerity. The results show that EPSILOD obtains similar or better performance than other solutions in most cases, while reducing the development effort.
Díez-Poza et al. (Wed,) studied this question.