Trilinos/Kokkos: Core Kernels Package
TrilinosRelease6.0Branch
Kokkos is a collection of the handful of sparse and dense kernels that determine the much of the performance for preconditioned Krylov methods. In particular, it contains function class for sparse matrix vector multiplication and triangular solves, and also for dense kernels that are not part of the standard BLAS.
The classes in this package are written in a way that they can be easily customized via inheritance, replacing only the small sections of code that are unique for a given platform or architectures. In this way we hope to provide optimal implementations of these algorithms for a broad set of platforms from scalar microprocessors to vector multiprocessors.
Kokkos is not intended as a user package, but to be incorporated into other packages that need high performance kernels.
Kokkos contains a number of classes. They can be categorized as follows:
-
Abstract interfaces:
-
Kokkos::CisMatrix class: The base class describing the functionality that Kokkos needs from a sparse matrix object. The Kokkos::HbMatrix is a default implementation.
-
Kokkos::MultiVector class: The base class describing the functionality that Kokkos needs from a dense object. The Kokkos::AopMultiVector and Kokkos::2dMultiVector are default implementations.
-
Reference Implementations of Fuction Classes:
-
Kokkos::BaseSparseOps: Provides a reference implementation of sparse matrix vector, sparse matrix multivector and sparse solve operations. Provides support for reuse of structure. All methods are virtual, allowing derived classes to selectively reimplement methods as needed.
-
Kokkos::BaseDenseOps: Provides a reference implementation of certain vector update
kernels that are not part of the BLAS standard, but still important for performance.
-
Utility classes.
-
Timing class: Kokkos::Time - Provides timing functions for the purposes of performance analysis.
-
Floating point operation class: Kokkos::Flops - Provides floating point operations (FLOPS) counting and reporting functions for the purposes of performance analysis. All Kokkos computational classes accumulate FLOP counts associated with the this object of the computations.
-
Kokkos::CompObject class: Supports the registration of a Kokkos::Flops object with a function class.
Kokkos can be used as a stand-alone package. However, it also provides functionality for Epetra and Tpetra.
Generated on Sun Sep 7 12:39:49 2008 for Kokkos by
1.3.9.1