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

Level 3 basic linear algebra subprograms for sparse matrices: a user-level interface
复制标题

稀疏矩阵的第 3 级基本线性代数子程序:用户级界面

DOI:
10.1145/275323.275327
复制
发表时间:
1997
期刊:
ACM Trans. Math. Softw.
影响因子:
--
通讯作者:
C. Vittoli
C. Vittoli
中科院分区:
--
文献类型:
--
作者:
I. Duff;M. Marrone;G. Radicati;C. Vittoli

文献摘要

被引文献

相似文献

本文提出了一组关于稀疏矩阵的第三级基本线性代数子程序及其相关核。一个主要目标是设计和开发一个公共框架,以便能够在高性能计算机上高效且可移植地实现稀疏矩阵的迭代算法。我们设计了例程,以保护数学软件的开发人员免受用于稀疏矩阵的各种数据结构的大部分复杂性的影响。我们保持了界面和代码套件的尽可能简单,同时包括了足够的功能来满足迭代求解器的大部分要求,并提供了足够的灵活性来覆盖大多数稀疏矩阵数据结构。我们的框架的一个重要方面是,如果需要的话,它可以很容易地扩展以加入新的内核。我们讨论了完全矩阵与稀疏矩阵相乘的子程序的设计、实现和使用,以及具有一个或多个(完全)右端的稀疏三角系统的求解。我们包括一个例程,用于检查输入数据,从输入生成新的稀疏数据结构,以及缩放稀疏矩阵。转换的新数据结构可以由用户指定,也可以由供应商自动选择,以便在他们的机器上高效。我们还包括一个用于排列稀疏矩阵的列的例程和一个用于排列完整矩阵的行的例程。
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.