
This paper presents the performance portable implementation of a kinetic plasma simulation code with C++ parallel algorithm to run across multiple CPUs and GPUs. Relying on the language standard parallelism stdpar and proposed language standard multi-dimensional array support mdspan, we demonstrate that a performance portable implementation is possible without harming the readability and productivity. We obtain a good overall performance for a mini-application in the range of 20 % to the Kokkos version on Intel Icelake, NVIDIA V100, and A100 GPUs. Our conclusion is that stdpar can be a good candidate to develop a performance portable and productive code targeting the Exascale era platform, assuming this approach will be available on AMD and/or Intel GPUs in the future.
productivity, plasma simulation, [INFO.INFO-SE] Computer Science [cs]/Software Engineering [cs.SE], parallel algorithms, codes, c++ languages, [INFO.INFO-PL] Computer Science [cs]/Programming Languages [cs.PL], conferences, [INFO.INFO-PF] Computer Science [cs]/Performance [cs.PF], [PHYS.PHYS.PHYS-PLASM-PH] Physics [physics]/Physics [physics]/Plasma Physics [physics.plasm-ph], kinetic theory, [INFO.INFO-DC] Computer Science [cs]/Distributed, Parallel, and Cluster Computing [cs.DC], [INFO.INFO-MO] Computer Science [cs]/Modeling and Simulation
productivity, plasma simulation, [INFO.INFO-SE] Computer Science [cs]/Software Engineering [cs.SE], parallel algorithms, codes, c++ languages, [INFO.INFO-PL] Computer Science [cs]/Programming Languages [cs.PL], conferences, [INFO.INFO-PF] Computer Science [cs]/Performance [cs.PF], [PHYS.PHYS.PHYS-PLASM-PH] Physics [physics]/Physics [physics]/Plasma Physics [physics.plasm-ph], kinetic theory, [INFO.INFO-DC] Computer Science [cs]/Distributed, Parallel, and Cluster Computing [cs.DC], [INFO.INFO-MO] Computer Science [cs]/Modeling and Simulation
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 3 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Top 10% | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
