ExaSHARK+GASPI: Reducing the burden to program large HPC systems since 2014

Tom Vander Aa, Imen Chakroun, Roel Wuyts, Mirko Rahn, Christian Simmendinger · 2015

Several trends in HPC systems make it challenging to quickly and easily develop applications that perform well. One important trend is an increased number of levels in HPC systems: more levels of memory and interconnect, more levels of parallelism (SIMD, multi-threading, multi-core,... ). A second trend, caused by the first is an explosion of software solutions to exploit all these levels. This paper is about how ExaSHARK - a library for handling n-dimensional distributed arrays - combined with the GASPI PGAS language aims to reduce the increasing programming burden while still providing good performance. ExaSHARK offers its users a global array like usability while its underlying runtime builds on GASPI to take optimal advantage of the PGAS paradigm. We will present first result and challenges on using GASPI as the main underlying programming model for ExaSHARK. These result show that by using ExaSHARK the application can take advantage of the PGAS library without having to know it is underneath (code portability). On the other hand it is clear that to get good performance, we need to change the application's and ExaSHARK's communication patterns to better exploit the asynchronous nature of GASPI (no performance portability).

Read the paper · More papers on PaperTik