  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 tackle the massively parallel implementation of the full PIC
model.
