Kokkos Node API and Local Linear Algebra Kernels Version of the Day
Trilinos/Kokkos: Core Kernels Package

Introduction

Kokkos provides two main capabilities for Trilinos. The first is an abstract programming interface (API) for handling memory and specifying work for shared-memory parallel nodes (the Kokkos Node API). The second is a collection of local (i.e., not distributed) linear algebra classes and the kernels needed to realized their functionality in parallel (the Kokkos Linear Algebra kernels library). In addition to providing basic data structures and kernels, Kokkos also specifies APIs for extension via user-provided kernels (see, e.g., the Kokkos Compressed-Row Sparse API).

Kokkos is typically not used directly in applications, but instead as a significant component in higher-level Trilinos packages, such as Tpetra. The functionality contained here-in has been put in the Kokkos package in order to facilitate code re-use between Trilinos packages and to ease experimentation for kernel researchers.

Overview of Kokkos.

Kokkos Classes

Kokkos contains a number of classes. They can be categorized as follows:

Building Kokkos and using it in Trilinos

Kokkos can be used as a stand-alone package. However, its primary use case is via the functionality provided to other packages, such as Tpetra, Ifpack2 and Isorropia.

See Kokkos CUDA Support for instructions on building with support for NVIDIA CUDA GPUs.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends