Recently, task-based programming models have emerged as a prominent alternative among shared-memory parallel paradigms. Inherently asynchronous, these models provide native support for dynamic load balancing and incorporate data flow concepts to selectively synchronise the tasks. However, tasking models are yet to be widely adopted by the HPC community and their eective advantages when applied to non-trivial, real-world HPC applications are still not well comprehended. In this paper, we study the parallelization of a production electromagnetic particle-in-cell (EM-PIC) code for kinetic plasma simulations exploring different strategies using asynchronous task-based models. Our fully asynchronous implementation not only signicantly outperforms a conventional, synchronous approach but also achieves near perfect scaling for 48 cores.
Particle-In-Cell Simulation using Asynchronous Tasking