Level 3 basic linear algebra subprograms for sparse matrices: a user-level interface

  • Authors:
  • Iain S. Duff;Michele Marrone;Giuseppe Radicati;Carlo Vittoli

  • Affiliations:
  • Rutherford Appleton Lab., Oxon, UK;IBM, Cagliari, Italy;IBM, Cagliari, Italy;IBM, Cagliari, Italy

  • Venue:
  • ACM Transactions on Mathematical Software (TOMS)
  • Year:
  • 1997

Quantified Score

Hi-index 0.00

Visualization

Abstract

This article proposes a set of Level 3 Basic Linear Algebra Subprograms and associated kernels for sparse matrices. A major goal is to design and develop a common framework to enable efficient, and portable, implementations of iterative algorithms for sparse matrices on high-performance computers. We have designed the routines to shield the developer of mathematical software from most of the complexities of the various data structures used for sparse matrices. We have kept the interface and suite of codes as simple as possible while at the same time including sufficient functionality to cover most of the requirements of iterative solvers and sufficient flexibility to cover most sparse matrix data structures. An important aspect of our framework is that it can be easily extended to incorporate new kernels if the need arises. We discuss the design, implementation, and use of subprograms for the multiplication of a fully matrix by a sparse one and for the solution of sparse triangular systems with one or more (full) right-hand sides. We include a routine for checking the input data, generating a new sparse data structure from the input, and scaling a sparse matrix. The new data structure for the transformation can be specified by the user or can be chosen automatically by vendors to be efficient on their machines. We also include a routine for permuting the columns of a sparse matrix and one for permuting the rows of a full matrix.