A Task Programming Implementation for the Particle in Cell Code Smilei
Francesco Massimo, Mathieu Lobet, Julien Derouillat, Arnaud Beck,, Guillaume Bouchard, Mickael Grech, Fr\'ed\'eric P\'erez, Tommaso Vinci

TL;DR
This paper introduces a task-based implementation of the Particle in Cell loop in Smilei, leveraging OpenMP to improve load balancing and scaling in plasma physics simulations.
Contribution
It presents a novel task programming approach for the PIC loop in Smilei, enhancing asynchronous execution and load balancing using OpenMP.
Findings
Improved load balancing in PIC simulations
Enhanced strong scaling performance
Mitigation of thread-level load imbalance
Abstract
An implementation of the electromagnetic Particle in Cell loop in the code Smilei using task programming is presented. Through OpenMP, the macro-particles operations are formulated in terms of tasks. This formulation allows asynchronous execution respecting the data dependencies of the macro-particle operations, the most time-consuming part of the code in simulations of interest for plasma physics. Through some benchmarks it is shown that this formulation can help mitigating the load imbalance of these operations at the OpenMP thread level. The improvements in strong scaling for load-imbalanced physical cases are discussed.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
