A Sparse Matrix Library in C++ for High Performance Architectures
Abstract:
We describe an object oriented sparse matrix library in C++ built upon the Level 3 Sparse BLAS proposal [5] for portability and performance across a wide class of machine architectures. The C++ library includes algorithms for various iterative methods and supports the most common sparse data storage formats used in practice. Besides simplifying the subroutine interface, the object oriented design allows the same driving code to be used for various sparse matrix formats, thus addressing many of the di culties encountered with the typical approach to sparse matrix libraries. We emphasize the fundamental design issues of the C++ sparse matrix classes and illustrate their usage with the preconditioned conjugate gradient (PCG) method as an example. Performance results illustrate that these codes are competitive with optimized Fortran 77. We discuss the impact of our design on elegance, performance, maintainability, portability, and robustness. 1
Citations
| 617 | A set of level 3 basic linear algebra subprograms – Dongarra, Croz, et al. - 1990 |
| 373 | der Vorst. Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods – Barrett, Berry, et al. - 1994 |
| 266 | Sparse Matrix Test Problems – Duff, Grimes, et al. - 1989 |
| 216 | SPARSKIT: a Basic Tool Kit for Sparse Matrix Computations – Saad - 1990 |
| 196 | der Vorst. An iterative solution method for linear systems of which the coefficient matrix is a M-matrix – Meijerink, Van - 1977 |
| 72 | et al., “Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods”, 2 nd edition – Barrett - 1994 |
| 36 | LAPACK++: A Design Overview of Object-Oriented Extensions for High Performance Linear Algebra – Dongarra, Pozo, et al. - 1993 |
| 16 | A proposal for user level sparse BLAS – Duff, Marrone, et al. - 1992 |
| 10 | A proposal for a sparse BLAS toolkit – Heroux - 1992 |
| 7 | A proposal for a sparse BLAS – Heroux - 1992 |
| 4 | A Proposal for User Level Sparse BLAS, CERFACS – Duff, Marrone, et al. - 1992 |

