Presenters
Event Type
Tutorial

Parallel Programming Languages, Libraries, Models
and Notations
TimeMonday, November 13th1:30pm -
5pm
Location406
DescriptionThe Kokkos library enables applications and domain
specific libraries/libraries to implement intra-node
thread scalable algorithms that are performance portable
across diverse manycore architectures. Kokkos uses C++
template meta-programming, as opposed to compiler
extensions or source-to-source translators, to map user
code onto architecture-targeted mechanisms such as
OpenMP, Pthreads, and CUDA. Kokkos’ execution mapping
inserts users’ parallel code bodies into well-defined
parallel patterns and then uses an
architecture-appropriate scheduling to execute the
computation. Kokkos’ data mapping implements polymorphic
layout multidimensional arrays that are allocated in
architecture-abstracted memory spaces with a layout
(e.g., row-major, column-major, tiled) appropriate for
that architecture. 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. Tutorial participants will learn
Kokkos’ programming model through lectures, hands on
exercises, and presented examples.