- By:
- Trott, Christian; Lebrun-Grandie, Damien T; Arndt, Daniel ; Ciesko, Jan; Hollman, Daisy; Ellingwood, Nathan; Gayatri, Rahulkumar; Harvey, Evan; Ibanez, Daniel; Liber, Nevin; Madsen, Jonathan; Miles, Jeff; Poliakoff, David; Powell, Amy; Rajamanickam, Siva; Simberg, Mikael; Sunderland, Daniel; Turcksin, Bruno ; Wilke, Jeremiah
- Journal Name:
- IEEE Transactions on Parallel and Distributed Systems
- Page Number:
- 805-817
- Volume:
- 33
- Issue Number:
- 4
- Publication Date:
- November 9, 2023
- View DOI Listing:
- https://doi.org/10.1109/MCSE.2021.3098509
Abstract
As the push towards exascale hardware has increased the diversity of system architectures, performance portability has become a critical aspect for scientific software. We describe the Kokkos Performance Portable Programming Model that allows developers to write single source applications for diverse high-performance computing architectures. Kokkos provides key abstractions for both the compute and memory hierarchy of modern hardware. We describe the novel abstractions that have been added to Kokkos version 3 such as hierarchical parallelism, containers, task graphs, and arbitrary-sized atomic operations to prepare for exascale era architectures. We demonstrate the performance of these new features with reproducible benchmarks on CPUs and GPUs.