Efficient Strict-Binning Particle-in-Cell Algorithm for Multi-Core SIMD Processors

Abstract

Particle-in-Cell (PIC) codes are widely used for plasma simulations. On recent multi-core hardware, performance of these codes is often limited by memory bandwidth. We describe a multi-core PIC algorithm that achieves close-to-minimal number of memory transfers with the main memory, while at the same time exploiting SIMD instructions for numerical computations and exhibiting a high degree of OpenMP-level parallelism. Our algorithm keeps particles sorted by cell at every time step, and represents particles from a same cell using a linked list of fixed-capacity arrays, called chunks. Chunks support either sequential or atomic insertions, the latter being used to handle fast-moving particles. To validate our code, called Pic-Vert, we consider a 3d electrostatic Landau-damping simulation as well as a 2d3v transverse instability of magnetized electron holes. Performance results on a 24-core Intel Skylake hardware confirm the effectiveness of our algorithm, in particular its high throughput and its ability to cope with fast moving particles.

Paper

Efficient Strict-Binning Particle-in-Cell Algorithm for Multi-Core SIMD Processors
Yann Barsamian, Arthur Charguéraud, Sever A. Hirstoaga, and Michel Mehrenberger
Euro-Par: International European Conference on Parallel and Distributed Computing, August 2018