Skip to main content

Exascale Programming Models for Heterogeneous Systems

Periodic Reporting for period 1 - EPiGRAM-HS (Exascale Programming Models for Heterogeneous Systems)

Reporting period: 2018-09-01 to 2020-02-29

The first exascale supercomputer is likely to be on-line at the end of this year or next year. The main characteristic of an exascale machine will be the amount of available parallelism required to break the exaFLOPS barrier. How to handle and program such a large amount of parallelism in point-to-point and collective communication while retaining maximum efficiency, was the focus of the EPiGRAM project (No. 610598). To be ready for programming exascale supercomputers, the EPiGRAM project started from already existing, mature, highly scalable programming interfaces: MPI and GASPI. A second main characteristic of an exascale supercomputer will be the high-level of heterogeneity of the compute and memory subsystems. While it is not yet evident what would be the best programming approach for developing applications on large-scale heterogeneous supercomputers, a general consensus in the HPC community is that programmers need an extension of the dominant programming models, such as MPI and GASPI, to ensure the programmability of these new architectures. The EPiGRAM-HS project builds on the results of the EPiGRAM project and addresses the heterogeneity challenge of programming exascale supercomputers. The goal is to improve their programmability, extending MPI and GASPI to exploit accelerators, reconfigurable hardware, and heterogeneous memory systems.

The overall objective of the EPiGRAM-HS project is to develop a new programming environment for large-scale heterogeneous systems based on MPI and GASPI programming interfaces. This project consists of the distinctive objectives:
Objective 1. To deliver a new validated programming environment for large-scale heterogeneous computing systems, including accelerators, reconfigurable hardware, and low-power microprocessor together with non-volatile and high-bandwidth memories, for enabling HPC and emerging deep-learning frameworks to run on large-scale heterogeneous systems at maximum performance.
Objective 2. To considerably extend the programmability of large-scale heterogeneous systems with GPUs, FPGAs, HBM and NVM, by introducing new concepts, adding functionalities, and carrying out implementations in two widely-used HPC programming systems for large-scale supercomputers (MPI and GASPI).
Objective 3: To maximize the productivity of application development on heterogeneous supercomputers by providing auto-tuned collective communication, a framework for automatic code generation for FPGAs, a memory abstraction device comprised of APIs and a runtime for automatic data placement on diverse memories, and a DSL for large-scale deep-learning frameworks.

More productive and powerful software has a strong societal impact on many levels. In particular, EPiGRAM-HS provides impacts via applications. Weather forecasts can be faster and more precise and therefore potentially save lives, as well as large amounts of public funds ahead of climate change. Space weather and computational fluid dynamics can get important data and help create more effective technologies for the future. Finally, lung cancer detection using deep learning applications will be of profound importance in the future for public health care and the transition to e-health.
The first 18 months of the EPiGRAM-HS project defined the software and design of the EPiGRAM-HS design programming environment. The focus of EPiGRAM-HS has been to extend the EPiGRAM software environment, based on MPI and GASPI, to support accelerators (GPUs and FPGAs) and heterogeneous memories. Together with MPI and GASPI, the two main technologies of the project, we designed and started the implementation of the memory abstract device, comprising of the MAMBA API, a runtime system, an extension to GPI-Space to support FPGAs, and a Domain-Specific Language for developing new deep-learning frameworks. Among the pilot applications, we introduced new use cases from AI/Deep Learning to include emerging HPC applications.
In the project, we are advancing the state-of-the-art in the topic of HPC programming models for heterogeneous systems. By the end of the project, we will deliver a programming environment based on MPI, GASPI, GPI-Space and abstract device model for programming large-scale heterogeneous systems. The capabilities of the programming environment will be demonstrated by our pilot applications.