Efficient and portable vectorised sweep kernels for the transport equation on 3D cartesian grids using the Kokkos framework
Résumé
This paper describes the implementation of efficient and portable vectorised sweep ker-
nels as part of the resolution of the neutron transport equation on 3D cartesian grids using
the discrete ordinates (S n ) method for the angular variable and the Diamond Differenc-
ing (DD) scheme for the spatial discretisation. Vectorisation is set up along the directions
within the same octant, and is independent of the spatial discretisation order, therefore the
extension of this technique to high-order DD or Discontinuous Galerkin (DG) schemes
is immediate. Our implementation is written in C++17 and relies on the Kokkos perfor-
mance portability framework. This library allows to express shared-memory parallelism
(including vectorisation) in a machine-independent way, and supports many backends in-
cluding CUDA and OpenMP. Our vectorisation procedure relies on the portable SIMD
types provided by Kokkos. The method has been implemented for DD schemes up to
order 2, and yields promising results on CPUs supporting standard vector instructions.
Origine | Fichiers produits par l'(les) auteur(s) |
---|