Sandia National Labs
LAMMPS KOKKOS Package: The quest for performance portable MD
Supercomputing hardware is complicated and ever-changing, and many hardware types such as GPUs require special code beyond C++ and MPI in order for applications to run well. The Kokkos performance portability library 1 is developed by Sandia National Laboratories as a single-source system, meaning C++ code is written once in a form that looks independent of the target hardware, and then target-specific code (i.e. OpenMP or CUDA) is generated based on compile-time options, protecting developers from having to maintain multiple versions of the code. LAMMPS has been extended to use the Kokkos performance portability library to enable multithreaded CPU and GPU parallelism. An overview of using the LAMMPS KOKKOS package will be given, and performance comparisons between Kokkos and the GPU package running on the new Summit supercomputer will be presented.
1 H. C. Edwards, C. R. Trott, and D. J. Sunderland, Kokkos: Enabling manycore performance portability through polymorphic memory access patterns, Parallel Distr. Com., 74, 12 (2014), 3202-3216.