Litcius/Paper detail

Kokkos 3: Programming Model Extensions for the Exascale Era

Christian Robert Trott, Damien Lebrun-Grandié, Daniel Arndt, Jan Ciesko, Vinh Dang, Nathan Ellingwood, Rahulkumar Gayatri, Evan Harvey, Daisy S. Hollman, Daniel Ibanez, Nevin Liber, Jonathan Madsen, Jeff Miles, David Poliakoff, Amy Powell, Sivasankaran Rajamanickam, Mikael Simberg, Dan Sunderland, Bruno Turcksin, Jeremiah J Wilke

2021IEEE Transactions on Parallel and Distributed Systems470 citationsDOIOpen Access PDF

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.

Topics & Concepts

Computer scienceSoftware portabilityExascale computingMemory hierarchyParallel computingKey (lock)Programming paradigmComputer architectureRuntime systemHierarchyTask (project management)SoftwareParallelism (grammar)SupercomputerDistributed computingOperating systemProgramming languageMarket economyManagementCacheEconomicsParallel Computing and Optimization TechniquesDistributed and Parallel Computing SystemsAdvanced Data Storage Technologies