Overview of the Implementation

Detailed Description

This section provides a high-level guide to the major components of this implementation.

Matrix and vector data structures

Users interact with the library through a sparse matrix handle, oski_matrix_t, implemented in this library as a pointer to a oski_matstruct_t data structure. This structure in turn contains generic matrix properties (dimensions, number of logical non-zero elements, whether it is symmetric, Hermitian, or triangular) as well as pointers to concrete matrix representations (i.e., the actual sparse data structures). We refer to the possible concrete data structures as `matrix types'. The Compressed Sparse Row (CSR) Format is an example of such a matrix type.

In addition, users must allocate their own dense vector and multivector arrays, and wrap these in so-called vector views, oski_vecview_t (see oski/vecview.h).

Major library components

The library implementation is logically divided into the following major components:


 Matrix Types
 The matrix types module implements an internal run-time database of matrix types available to the library implementation.
 Kernel Implementations
 Describes the generic, matrix type-independent kernel implementations called by the user.
 Tracing Module
 This module implements a run-time database facility for keeping track of kernel calls.
 Tuning Module
 This module implements a run-time manager for applying automatic tuning heuristics.
 Auxiliary Routines
 Provides system-wide utilities for memory allocation, error-handling, BLAS wrappers, dynamic library loading, timers, etc.

Generated on Wed Sep 19 16:41:23 2007 for BeBOP Optimized Sparse Kernel Interface Library by  doxygen 1.4.6