Seminars & Colloquia

Mark Hoemmen

Sandia National Laboratories

"Kokkos: Manycore performance portability, for both applications and researchers "

Thursday October 15, 2015 11:00 AM
Location: 3211, EBII NCSU Centennial Campus
(Visitor parking instructions)



Kokkos lets applications and libraries implement shared-memory parallel algorithms that are performance portable across many different computer architectures. It is a library implemented in standard C++. 'Performance portable' means that Kokkos provides abstractions for parallel execution and data access, which it then maps efficiently to an underlying run-time environment such as OpenMP, Pthreads, or CUDA. By integrating execution and data mapping into a single programming model, Kokkos eliminates the contemporary array-of-structures versus structure-of-arrays dilemma from user code.

Kokkos' programming model consists of the following extensible abstractions: execution spaces where computations execute, execution policies for scheduling computations, parallel patterns, memory spaces where data is allocated, array layouts mapping multi-indices onto memory, and data access intent traits to portably map data accesses to architecture-specific mechanisms such as GPU texture cache.

 Academics should be interested in Kokkos for the following reasons:

 1. It is open source and available on Github.

2. It lets you write code once, that performs reasonably well on widely different computer architectures.

3. You can either write to Kokkos directly, or use it as a compilation target for higher-level / domain-specific languages or autotuning.

4. You can use it as a research vehicle for parallel algorithms, run-time systems, fault tolerance, and hardware / software codesign.

5. Real applications use it right now. It's tested nightly. We pay attention to bug reports and pull requests.


Short Bio:

Mark Hoemmen is research and development staff at Sandia National Laboratories in Albuquerque, New Mexico. His research focuses on parallel numerical linear algebra, fault tolerance, parallel programming models, and performance tuning. He has a strong interest in software development as well, and spend much of his time on the Trilinos ( and Kokkos software projects.

Host: Frank Mueller, CSC

Back to Seminar Listings
Back to Colloquia Home Page