The NIST Fortran Sparse BLAS (v. 0.5)

Sparse Matrix Computational Kernels

Karin Remington
National Institute of Standards and Technology


See the working document of the BLAST Sparse Subcommittee for related information.
As part of the ongoing standardization effort in the BLAS Technical Forum, we are releasing the NIST Fortran Sparse BLAS Library for public review.

  1. OVERVIEW
  2. DOCUMENTATION AND RELATED PAPERS
  3. DISTRIBUTION
  4. BUG REPORTS

OVERVIEW

The original NIST Sparse BLAS implementation (in C) of the Toolkit interface provides an maintenance friendly approach to optimization of BLAS kernel routines via an automatic generation of special case routines. This approach provides high performance with little or no hand-tuning of source code.

It does, however, result in a very large number of kernel routine interfaces; essentially one interface for each Toolkit level routine parameter combination. For those who find this to be undesirable, and not worth the performance and maintenance benefits, a straightforward Fortran implementation of the Toolkit routines is now available. These routines are NOT optimized for any particular parameter combinations, but can be optimized to suit the needs of a particular vendor/site.

The NIST Fortran Sparse BLAS (Basic Linear Algebra Subprogram) library provides computational kernels for fundamental sparse matrix operations:

where A is sparse matrix, B and C are dense matrices/vectors, and DL and DR are diagonal matrices. This version of the NIST Fortran Sparse BLAS supports the following sparse formats:

Symmetric and skew-symmetric versions are also supported.

The routines are written in Fortran and are callable from Fortran and C through the interface proposed in the Sparse BLAS Toolkit, see "A Revised Proposal for a Sparse BLAS Toolkit", by S. Carney, M. Heroux, G. Li, R. Pozo, K. Remington and K. Wu. Also see the companion paper, "A set of Level 3 Basic Linear Algebra Subprograms for sparse matrices", I. Duff, M. Marrone, G. Radiacti, C. Vittoli.


PERFORMANCE

Due to the large number of matrix structures and algorithm cases, the primary effort has been on functionality rather than performance. Performance measurements on Sun, SGI, RS6000 and Pentium Pro systems will be forthcoming.

DOCUMENTATION AND RELATED PAPERS


DISTRIBUTION

The complete installation (with testing) requires about 3.5 megabytes of free disk space.


BUG REPORTS




Last updated: Jul 31, 1997 by KAR.