TY - JOUR
T1 - AllScale toolchain pilot applications: PDE based solvers within a parallel development environment
AU - O'Donncha, Fearghal
AU - Iakymchuk, Roman
AU - Akhriev, Alber
AU - Gschwandtner, Philipp
AU - Thoman, Peter
AU - Heller, Thomas
AU - Aguilar, Xavier
AU - Dichev, Kiril
AU - Gillan, Charles
AU - Markidis, Stefano
AU - Laure, Erwin
AU - Ragnoli, Emanuele
AU - Jordan, Herbert
AU - Vassiliadis, Vassilis
AU - Fahringer, Thomas
AU - Johnston, Michael
PY - 2019/12/6
Y1 - 2019/12/6
N2 - AllScale is a programming environment targeting simplified development of highly scalable parallel applications by dividing development responsibilities into silos. The front-end AllScale API provides a simple C++ development environment through a suite of parallel constructs expressions denoting tasks operating concurrently. This interfaces with the other components of the toolchain (core-level API, compiler and runtime) which manages tasks related to the machine and system level, hidden to the user. The paper describes the development of two large-scale parallel applications within the AllScale API, namely, an advection– diffusion model with data assimilation and a Lagrangian space-weather simulation model based on a particle-in-cell method. We present mathematical formulations and implementations and evaluate parallel constructs developed using the AllScale API. The performance of the applications from the perspective of both parallel scalability, and more importantly productivity are assessed. We demonstrate how the AllScale API can greatly improve developer productivity while maintaining parallel performance in two applications with distinct numerical characteristics. Code complexity metrics demonstrate reduction in application specific implementations of up to 30% while performance tests on three different compute systems demonstrate comparable parallel scalability to an MPI version of the code.
AB - AllScale is a programming environment targeting simplified development of highly scalable parallel applications by dividing development responsibilities into silos. The front-end AllScale API provides a simple C++ development environment through a suite of parallel constructs expressions denoting tasks operating concurrently. This interfaces with the other components of the toolchain (core-level API, compiler and runtime) which manages tasks related to the machine and system level, hidden to the user. The paper describes the development of two large-scale parallel applications within the AllScale API, namely, an advection– diffusion model with data assimilation and a Lagrangian space-weather simulation model based on a particle-in-cell method. We present mathematical formulations and implementations and evaluate parallel constructs developed using the AllScale API. The performance of the applications from the perspective of both parallel scalability, and more importantly productivity are assessed. We demonstrate how the AllScale API can greatly improve developer productivity while maintaining parallel performance in two applications with distinct numerical characteristics. Code complexity metrics demonstrate reduction in application specific implementations of up to 30% while performance tests on three different compute systems demonstrate comparable parallel scalability to an MPI version of the code.
KW - HPC, data assimilation, partial dierential equation, numerical solvers, advection-diusion, particle-in-cell.
U2 - 10.1016/j.cpc.2019.107089
DO - 10.1016/j.cpc.2019.107089
M3 - Article
SN - 0010-4655
JO - Computer Physics Communications
JF - Computer Physics Communications
M1 - 107089
ER -