Improving parallel performances of the semi-implicit Particle-In-Cell code ECsim
ARCHER2-eCSE07-06
PI: Dr Elisabetta Boella (Lancaster University)
Co-I(s): Prof Giovanni Lapenta (KU Leuven, Belgium), Prof Maria Elena Innocenti (Ruhr-University Bochum, Germany)
Technical staff: Alexei Borissov (EPCC, University of Edinburgh)
Subject Area:
Published : 2025-06-04
This eCSE project focused on improving the performance of ECsim, a particle-in-cell code used to simulate plasmas. Plasma is sometimes referred to as the fourth state of matter, distinct from solid, liquid and gas states. Plasma physics underpins much of the research carried out into space exploration, development of electronic devices and nuclear fusion power reactors. The work done in this project has increased the efficiency of the code – specifically, the modifications have resulted in improved IO time, reduced runtime, and a reduction in the number of memory accesses. By substituting the existing IO approach to use a supported library, OpenPMD-api, a 25% improvement in the time spent on IO was achieved. Among the other optimisations carried out, the most significant improvement resulted from refactoring memory access patterns for updating grid quantities. The most substantial of these were the updates to the mass matrix arrays. Changing the nine existing 4D arrays to a single 5D array reduced the number of memory accesses significantly and resulted in up to a 2x reduction in runtime. The results are shown in Figure 1.
Information about the code
ECsim is an energy conserving semi-implicit multidimensional Particle-In-Cell code.