P01 - A Language-Interoperable C++-Based Memory-Manager for the ICON Climate and Weather Prediction Model
DescriptionHPC machines now use accelerators such as GPUs. In addition, CPUs themselves now feature many cores as well as special fast memory, like the Fujistu A64FX and Intel Sapphire Rapids. These rapid changes create important challenges for simulation codes to accommodate different parallel programming models, but also orchestrate processing units and memory locations. In this poster, we present a new memory-manager concept for the ICON climate and weather prediction model to store and manipulate model variables. This new memory-manager concept allows going beyond OpenACC pragmas for GPU portability of the current Fortran code, thanks to more fine-grained memory management. The memory manager is written in C++ which allows supporting vendor-native parallel programming frameworks which are also C++-based, like CUDA, HIP, and SYCL, or portability layers like Kokkos. At the same time, the language-interoperability enables keeping backward compatibility with Fortran while introducing concepts facilitating better ICON component interfaces, but also to gradually and iteratively migrate parts of the code to newer languages for better efficiency as needed. This memory-manager concept has been introduced within the µphys subcomponent of ICON. In this poster, we show that beyond the ICON-specific aspects, this concept can be translated into many existing simulation codes.
TimeMonday, June 2611:20 - 11:50 CEST