University of Notre Dame College of Engineering
C-SWARM | Center for Shock Wave-processing of Advanced Reactive Materials


Center for Shock Wave-processing of Advanced Reactive Materials



Indiana University

Kokkos, Manycore Device Performance Portability for C++ HPC Applications

H. Carter Edwards

The Kokkos library enables development of HPC scientific applications that are performance portable across disparate manycore devices such as NVIDIA Kepler and Intel Xeon Phi. Portable programming models such as OpenMP, OpenACC, OpenCL, and Thrust focus on parallel execution but fail to address memory access patterns critical for best performance. In contrast Kokkos integrates compile-time polymorphic data layout with parallel execution policies to portably manage memory access patterns. We present recently added Kokkos concepts & capabilities with an emphasis on improvements to usability, such as C++11 lambda support now available in CUDA 7.0 for portable nested parallelism. We will also present a new application of Kokkos to Sandia's multithreaded graph library (MTGL).

Featured People

H. Carter EdwardsH. Carter Edwards

Sandia National Laboratories


H. Carter Edwards has over three decades of experience developing software for simulations of a variety of engineering domains. He is an expert in high performance computing (HPC) and is currently focusing on thread-scalable algorithms and data structures for heterogeneous manycore architectures such as NVidia GPU and Intel Xeon Phi.

He has a BS and MS in aerospace engineering from the University of Texas at Austin, and worked for ten years at the Johnson Space Center in the domain of spacecraft guidance, navigation, and control. He has a PhD in computational and applied mathematics, also from the University of Texas at Austin. He has been researching and developing software for HPC algorithms and data structures for the past seventeen years at Sandia National Laboratories.