Reference Implementation of Sparse BLAS Standard Released
January 2006
A reference implementation of the Sparse Basic Linear Algebra Subprogram (BLAS)
standard in ANSI/ISO C++ has been released. The Sparse BLAS standardize the
user interface to routines for performing elementary operations on sparse
matrices. Sparse matrices represent systems of linear equations in which only
a few elements per row are non-zero. Operations on very large sparse matrices
form the innermost kernel of the solution to mathematical problems at the core
of a very wide range of applications, from fluid flow to structural mechanics.
To enable the best use of their systems, computer vendors often provide
libraries of such routines optimized for their hardware. Thus, providing a
standardized application programmer interface (API) to such libraries improves
both the portability and performance of applications across a range of
computer architectures of multiple vendors. Standardization of dense matrix
operations, which was completed in the 1990s, has been very successful in
promoting performance portability.
The recently released NIST Sparse BLAS provides a baseline source-code-portable
C++ implementation with complete functionality of the Sparse BLAS standard,
including 79 functions and 23 matrix/vector properties. It establishes a
portable software platform upon which architecture-specific or
application-specific optimized version can be developed. It also serves as a
reference to which optimized implementations can be compared for testing
purposes.
Its interface specification was one of the outcomes of a five-year
standardization effort of the BLAS Technical Forum, with participants from
industry, academia, and government. NIST led the subcommittee which developed
the Sparse BLAS specification.
|