Improving parallel performances of the semi-implicit Particle-In-Cell code ECsim

ARCHER2-eCSE07-06


image

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.

image

Information about the code

ECsim is an energy conserving semi-implicit multidimensional Particle-In-Cell code.

Technical Report

Download as PDF