New Kokkos release improves performance portability among exascale-era heterogeneous architectures

With the latest Kokkos release, researchers with the Exascale Computing Project (ECP) continue to address the challenge of diverse programming models and heterogeneous architectures. The Kokkos Programming Model leverages parallelism, asynchronicity, and advanced hardware capabilities to provide a uniform programming model that enables developers to write fully performance-portable code for exascale-era platforms. Their work delivers a model that also maintains effective performance on legacy computing platforms. The work was published online in the October 2021 issue of IEEE Transactions on Parallel and Distributed Systems.

Writing and maintaining multiple application versions is impractical, and OpenMP, currently the only portable programming model supported by all vendors, is not only inconsistently implemented by different compilers, but the researchers believe that most C++ developers feel its pragma-based approach does not mix well with modern C++ software engineering practices. External evaluations have shown that Kokkos-based programming codes can achieve practical performance portability in real-world settings, making it an effective tool for emerging exascale platforms. One performance-portability study of five languages including OpenMP and OpenACC assigned the highest score to Kokkos, while another study showed that Kokkos runs climate code HOMMEXX up to 60 percent faster on CPU systems than the original code, while also effectively leveraging new GPU-based systems.

Because the Kokkos Programming Model was designed with performance portability in mind, developers are better able to write high-performing scientific and engineering applications that work on all current platforms and are ready for future systems. Kokkos is a prime example of software technologies developed with ECP funding that enable the high-performance computing community to efficiently leverage exascale computing platforms.

The researchers have also developed a comprehensive Kokkos EcoSystem based on their programming model that provides linear algebra libraries, tools, infrastructure, language interoperability layers, and user support. Future work includes developing new programming model APIs that allow for more efficient use of hardware resources and efforts to get some of Kokkos’ most useful concepts into the ISO C++ standard.

Christian R. Trott, Damien Lebrun-Grandié, Daniel Arndt, Jan Ciesko, Vinh Dang, Nathan Ellingwood, Rahulkumar Gayatri, Evan Harvey, Daisy S. Hollman, Dan Ibanez, Nevin Liber, Jonathan Madsen, Jeff Miles, David Poliakoff, Amy Powell, Sivasankaran Rajamanickam, Mikael Simberg, Dan Sunderland, Bruno Turcksin, and Jeremiah Wilke. “Kokkos 3: Programming Model Extensions for the Exascale Era.” 2022. IEEE Transactions on Parallel and Distributed Systems (April).

https://doi.org/10.1109/TPDS.2021.3097283

Kokkos isolation diagram

Kokkos isolates applications, libraries, and frameworks from the details of underlying hardware. With over 100 projects leveraging it, Kokkos is now used in the vast majority of HPC application domains. Source: Trott et al., September/October 2021