Evaluation of performance portability frameworks for the implementation of a particle-in-cell code
Victor Artigues, Katharina Kormann, Markus Rampp, Klaus Reuter

TL;DR
This study evaluates Kokkos and RAJA frameworks for implementing a particle-in-cell simulation, finding Kokkos most suitable for high-performance, portable, and complex PIC code across CPU and GPU architectures.
Contribution
It provides an in-depth comparison of Kokkos and RAJA for PIC codes, highlighting Kokkos's advantages in performance portability and usability for complex simulations.
Findings
Kokkos and RAJA are mature and usable for complex codes.
Both frameworks provide performance portability across architectures.
Kokkos is best suited for massively parallel PIC implementations.
Abstract
This paper reports on an in-depth evaluation of the performance portability frameworks Kokkos and RAJA with respect to their suitability for the implementation of complex particle-in-cell (PIC) simulation codes, extending previous studies based on codes from other domains. At the example of a particle-in-cell model, we implemented the hotspot of the code in C++ and parallelized it using OpenMP, OpenACC, CUDA, Kokkos, and RAJA, targeting multi-core (CPU) and graphics (GPU) processors. Both, Kokkos and RAJA appear mature, are usable for complex codes, and keep their promise to provide performance portability across different architectures. Comparing the obtainable performance on state-of-the art hardware, but also considering aspects such as code complexity, feature availability, and overall productivity, we finally draw the conclusion that the Kokkos framework would be suited best to…
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.
