The NNSA supports the development of open- source software technologies that are both important to the success of national security applications and externally impactful to the rest of the Exascale Computing Project and the broader community. These software technologies are managed as part of a larger Advanced Simulation and Computing (ASC) program portfolio, which provides resources to develop these technologies for national security applications. The software technologies at Sandia National Laboratories (SNL) span programming models and runtimes (Kokkos), mathematical libraries (Kokkos Kernels), data analysis and visualization (VTK-m), and system software (OS&ONR).
The Kokkos programming model and C++ library enable performance portable on-compute-node parallelism for exascale C++ applications. The Kokkos library implementation consists of a portable application programmer interface and architecture specific back-ends. These back-ends are developed and optimized as new capabilities are added to Kokkos, back- end programming mechanisms evolve, and architectures change.
Kokkos Kernels implements on-node shared memory computational kernels for linear algebra and graph operations, using the Kokkos shared-memory parallel programming model. The algorithms and the implementations of the performance-critical kernels in Kokkos Kernels are chosen carefully to match the features of the architectures, allowing exascale applications to use high-performance kernels and transfer the burden to Kokkos Kernels developers to maintain them in future architectures.
VTK-m is a toolkit of scientific visualization algorithms for emerging processor architectures that supports fine-grained concurrency within data analysis and visualization algorithms. This fine-grained concurrency is required to achieve performance on exascale architectures. The team is building up the VTK-m codebase with the necessary visualization algorithm implementations that run across the varied hardware platforms to be leveraged at the exascale.
The OS and On-Node Runtime (OS&ONR) project focuses on the design, implementation, and evaluation of operating system and runtime system interfaces, mechanisms, and policies supporting the efficient execution of application codes on next-generation plat-forms. Priorities in this area include the development of lightweight tasking techniques that integrate network communication, interfaces between the runtime and operating system for management of critical resources, portable interfaces for managing power and energy, and resource isolation strategies at the operating system level that maintain scalability and performance while providing a full-featured set of system services.