Abstract
In an attempt to avoid the inherent complexity of developing and maintaining sparse codes, an existing prototype restructuring compiler MT1 is being extended to support the automatic generation of sparse codes. A program operating on 2-dimensional arrays is converted automatically into semantically equivalent code exploiting the sparsity of some of the matrices that are stored in these arrays. This approach requires some kind of mechanism to supply the compiler with information that cannot be expressed in the dense description of the program. In particular, we discuss how to enable the compiler to select a suitable reordering method that e.g. preserves sparsity or increases the amount of exploitable parallelism in an algorithm.
Support was provided by the Foundation for Computer Science (SION) of the Dutch Organization for Scientific Research (NWO) and the EC Esprit Agency DG XIII under Grant No. APPARC 6634 BRA III.
Preview
Unable to display preview. Download preview PDF.
References
R.C. Agarwal, F.G. Gustavson, and M. Zubair. A high performance algorithm using pre-processing for the sparse matrix-vector multiplication. In Proceedings of the International Conference on Supercomputing, pages 32–41, 1992.
Edward Anderson and Youcef Saad. Solving sparse triangular linear systems on parallel computers. International Journal of High Speed Computing, Volume 1:73–95, 1989.
Vasanth Balasundaram. Interactive Parallelization of Numerical Scientific Programs. PhD thesis, Department of Computer Science, Rice University, 1989.
Vasanth Balasundaram. A mechanism for keeping useful internal information in parallel programming tools: The data access descriptor. Journal of Parallel and Distributed Computing, Volume 9:154–170, 1990.
U. Banerjee. Dependence Analysis for Supercomputing. Kluwer, Boston, 1988.
Aart J.C. Bik. A prototype restructuring compiler. Master's thesis, Utrecht University, 1992. INF/SCR-92-11.
Aart J.C. Bik, Peter M.W. Knijnenburg, and Hairy A.G. Wijshoff. Reshaping access patterns for generating sparse codes. In K. Pingali, U. Banerjee, D. Gelernter, A. Nicolau, and D. Padua, editors, Lecture Notes in Computer Science, No. 892, pages 406–422. Springer-Verlag, Berlin/New York, 1995.
Aart J.C. Bik and Harry A.G. Wijshoff. Nonzero structure analysis. In Proceedings of the International Conference on Supercomputing, pages 226–235, 1994.
Aart J.C. Bik and Harry A.G. Wijshoff. Advanced compiler optimizations for sparse computations. Journal of Parallel and Distributed Computing, 1995. To Appear.
Aart J.C. Bik and Harry A.G. Wijshoff. Automatic data structure selection and transformation for sparse matrix computations. IEEE Transactions on Parallel and Distributed Systems, 1995. To Appear.
Aart J.C. Bik and Harry A.G. Wijshoff. Construction of representative simple sections. In Proceedings of the International Conference on Parallel Processing, 1995. To Appear.
Keith D. Cooper, Mary W. Hall, and Ken Kennedy. Procedure cloning. In Proceedings of the IEEE International Conference on Computer Language, pages 96–105, 1992.
Keith D. Cooper, Ken Kennedy, and Linda Torczon. The impact of interprocedural analysis and optimization in the Rn programming environment. ACM Transactions on Programming Languages and Systems, Volume 8:491–523, 1986.
Iain S. Duff, A.M. Erisman, and J.K. Reid. Direct Methods for Sparse Matrices. Oxford Science Publications, Oxford, 1990.
Jocelyne Erhel and Bernard Philippe. Multiplication of a vector by a sparse matrix on supercomputers. In M. Cosnard, M.H. Barton, and M. Vanneschi, editors, Parallel Processing, pages 181–187. Elsevier Science Publishers B.V., North-Holland, 1988.
Dennis Gannon et al. SIGMA II: A tool kit for building parallelizing compilers and performance analysis systems. Department of Computer Science, Indiana University, 1992.
Alan George and Joseph W.H. Liu. A fast implementation of the minimum degree algorithms using quotient graphs. ACM Transactions on Mathematical Software, Volume 6:337–358, 1980.
Alan George and Joseph W.H. Liu. Computer Solution of Large Sparse Positive Definite Systems. Prentice-Hall, Englewoord Cliffs, New York, 1981.
Alan George and Joseph W.H. Liu. The evolution of the minimum degree ordering algorithm. SIAM Review, Volume 31:1–19, 1989.
David J. Kuck. The Structure of Computers and Computations. John Wiley and Sons, New York, 1978. Volume 1.
David A. Padua and Michael J. Wolfe. Advanced compiler optimizations for supercomputers. Communications of the ACM, Volume 29:1184–1201, 1986.
Sergio Pissanetsky. Sparse Matrix Technology. Academic Press, London, 1984.
Reginal P. Tewarson. Sparse Matrices. Academic Press, New York, 1973.
Michael J. Wolfe. Optimizing Supercompilers for Supercomputers. Pitman, London, 1989.
H. Zima. Supercompilers for Parallel and Vector Computers. ACM Press, New York, 1990.
Zahari Zlatev. Computational Methods for General Sparse Matrices. Kluwer, Dordrecht, 1991.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bik, A.J.C., Wijshoff, H.A.G. (1996). Annotations for a sparse compiler. In: Huang, CH., Sadayappan, P., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1995. Lecture Notes in Computer Science, vol 1033. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0014220
Download citation
DOI: https://doi.org/10.1007/BFb0014220
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-60765-6
Online ISBN: 978-3-540-49446-1
eBook Packages: Springer Book Archive