The automatic generation of sparse primitives

Primitives in mathematical software are usually written and optimized by hand. With the implementation of a “sparse compiler” that is capable of automatically converting a dense program into sparse code, however, a completely different approach to the generation of sparse primitives can be taken. A dense implementation of a particular primitive is supplied to the sparse compiler, after which it can be converted into many different sparse versions of this primitive. Each version is specifically tailored to a class of sparse matrices having a specific nonzero structure. In this article, we discuss some of our experiences with this new approach.

[1]  Yousef Saad,et al.  SPARK: a benchmark package for sparse computations , 1990, ICS '90.

[2]  Sergio Pissanetzky,et al.  Sparse Matrix Technology , 1984 .

[3]  Peter Kilpatrick,et al.  The Automated Derivation of Sparse Implementations of Numerical Algorithms through Program Transformation 1 , 1995 .

[4]  Jack J. Dongarra,et al.  An extended set of FORTRAN basic linear algebra subprograms , 1988, TOMS.

[5]  John G. Lewis,et al.  Sparse matrix test problems , 1982, SGNM.

[6]  S. Pissanetzky Sparse Matrix Algebra , 1984 .

[7]  Jack J. Dongarra,et al.  Algorithm 679: A set of level 3 basic linear algebra subprograms: model implementation and test programs , 1990, TOMS.

[8]  Aart J. C. Bik,et al.  Automatic Data Structure Selection and Transformation for Sparse Matrix Computations , 1996, IEEE Trans. Parallel Distributed Syst..

[9]  J. Pasciak,et al.  Computer solution of large sparse positive definite systems , 1982 .

[10]  A. J. C. Bik,et al.  Advanced compiler optimizations for sparse computations , 1993, Supercomputing '93.

[11]  Ken Kennedy,et al.  The impact of interprocedural analysis and optimization in the Rn programming environment , 1986, TOPL.

[12]  Youcef Saad,et al.  A Basic Tool Kit for Sparse Matrix Computations , 1990 .

[13]  Jack J. Dongarra,et al.  Solving linear systems on vector and shared memory computers , 1990 .

[14]  Aart J. C. Bik,et al.  Compiler support for sparse matrix computations , 1996 .

[15]  John G. Lewis,et al.  Sparse extensions to the FORTRAN Basic Linear Algebra Subprograms , 1991, TOMS.

[16]  Steven Brawer,et al.  An Introduction to Parallel Programming , 1989 .

[17]  I. Duff,et al.  Direct Methods for Sparse Matrices , 1987 .

[18]  Charles L. Lawson,et al.  Basic Linear Algebra Subprograms for Fortran Usage , 1979, TOMS.

[19]  Charles L. Lawson,et al.  Algorithm 539: Basic Linear Algebra Subprograms for Fortran Usage [F1] , 1979, TOMS.

[20]  Harry A. G. Wijshoff Implementing sparse BLAS primitives on concurrent/vector processors: a case study , 1993 .

[21]  James M. Boyle,et al.  Deriving Efficient Parallel Implementations of Algorithms Operating on General Sparse Matrices Using Automatic Program Transformation , 1994, CONPAR.

[22]  O. Østerby,et al.  Direct Methods for Sparse Matrices , 1983 .

[23]  Aart J. C. Bik,et al.  On Automatic Data Structure Selection and Code Generation for Sparse Computations , 1993, LCPC.

[24]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[25]  Jack J. Dongarra,et al.  A set of level 3 basic linear algebra subprograms , 1990, TOMS.

[26]  Utpal Banerjee,et al.  Loop Transformations for Restructuring Compilers: The Foundations , 1993, Springer US.

[27]  Ken Kennedy,et al.  Procedure cloning , 1992, Proceedings of the 1992 International Conference on Computer Languages.

[28]  Iain S. Duff,et al.  Level 3 basic linear algebra subprograms for sparse matrices: a user-level interface , 1997, TOMS.

[29]  Jack J. Dongarra,et al.  Algorithm 656: an extended set of basic linear algebra subprograms: model implementation and test programs , 1988, TOMS.

[30]  Aart J. C. Bik,et al.  The Use of Iteration Space Partitioning to Construct Representative Simple Sections , 1996, J. Parallel Distributed Comput..

[31]  Maurice Clint,et al.  The Construction of Numerical Mathematical Software for the AMT DAP by Program Transformation , 1992, CONPAR.

[32]  John G. Lewis,et al.  Algorithm 692: Model implementation and test package for the Sparse Basic Linear Algebra Subprograms , 1991, TOMS.

[33]  George Karypis,et al.  Introduction to Parallel Computing , 1994 .

[34]  Aart J. C. Bik,et al.  Advanced Compiler Optimizations for Sparse Computations , 1995, J. Parallel Distributed Comput..

[35]  Alan George,et al.  Computer Solution of Large Sparse Positive Definite , 1981 .

[36]  Z. Zlatev Computational Methods for General Sparse Matrices , 1991 .

[37]  Barbara M. Chapman,et al.  Supercompilers for parallel and vector computers , 1990, ACM Press frontier series.