Skip to content. | Skip to navigation

EUROfusion

Abstract of MULTIKIN Project

This project can be considered as taking preliminary steps towards developing a common code platform basis for various kinetic and gyrokinetic codes based on a particle approach. Currently, there exist a number of such codes which in fact share common algorithmic features such as integration of particle equation of motion in 3D EM fields discretized on a grid with finite difference or finite elements. The current long-term trend of processor architectures towards more and more cores per node makes the introduction of hybrid programming particularly increasingly necessary. Typically most codes already have MPI implemented but not all have shared memory parallelism, or have it only partly installed. Past successful experience in including MPI & OpenMP, or MPI & OpenACC (for GPU enabling) has shown that for such codes a factor of 2 performance improvement with OpenMP on CPU (Skylake) was attainable, and a further factor of 4 with OpenACC on GPU-equipped platforms. Three codes are targeted in this project. First, the VENUS-LEVIS particle code which integrates either the drift or the full orbits. This code is part of the SCENIC code package typically applied to RF and fast particle physics. Second, the EUTERPE global gyrokinetic code, which can deal with 3D background magnetic geometry. This code shares many features with the ORB5 code, restricted to 2D axisymmetric configurations, but has not yet been multithreaded. The particle push will be considered in this project, with the introduction of OpenMP. Third, the ORB5 code, which has been successfully ported to GPU. However, while all GPU-enabled kernels have shown effective performance acceleration, there remains one kernel, namely the field backsolve, which has not yet been multithreaded. Before the introduction of OpenMP and Open ACC into the code, that part was using only 5% of the total execution time and therefore had not been considered. But now it can take 50% or even more in typical applications of the code.