Skip to main content

Annotations for a sparse compiler

  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 1995)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1033))

  • 118 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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.

    Google Scholar 

  2. Edward Anderson and Youcef Saad. Solving sparse triangular linear systems on parallel computers. International Journal of High Speed Computing, Volume 1:73–95, 1989.

    Article  Google Scholar 

  3. Vasanth Balasundaram. Interactive Parallelization of Numerical Scientific Programs. PhD thesis, Department of Computer Science, Rice University, 1989.

    Google Scholar 

  4. 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.

    Article  Google Scholar 

  5. U. Banerjee. Dependence Analysis for Supercomputing. Kluwer, Boston, 1988.

    Google Scholar 

  6. Aart J.C. Bik. A prototype restructuring compiler. Master's thesis, Utrecht University, 1992. INF/SCR-92-11.

    Google Scholar 

  7. 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.

    Google Scholar 

  8. Aart J.C. Bik and Harry A.G. Wijshoff. Nonzero structure analysis. In Proceedings of the International Conference on Supercomputing, pages 226–235, 1994.

    Google Scholar 

  9. Aart J.C. Bik and Harry A.G. Wijshoff. Advanced compiler optimizations for sparse computations. Journal of Parallel and Distributed Computing, 1995. To Appear.

    Google Scholar 

  10. 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.

    Google Scholar 

  11. 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.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. 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.

    Article  Google Scholar 

  14. Iain S. Duff, A.M. Erisman, and J.K. Reid. Direct Methods for Sparse Matrices. Oxford Science Publications, Oxford, 1990.

    Google Scholar 

  15. 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.

    Google Scholar 

  16. Dennis Gannon et al. SIGMA II: A tool kit for building parallelizing compilers and performance analysis systems. Department of Computer Science, Indiana University, 1992.

    Google Scholar 

  17. 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.

    Article  Google Scholar 

  18. Alan George and Joseph W.H. Liu. Computer Solution of Large Sparse Positive Definite Systems. Prentice-Hall, Englewoord Cliffs, New York, 1981.

    Google Scholar 

  19. Alan George and Joseph W.H. Liu. The evolution of the minimum degree ordering algorithm. SIAM Review, Volume 31:1–19, 1989.

    Article  Google Scholar 

  20. David J. Kuck. The Structure of Computers and Computations. John Wiley and Sons, New York, 1978. Volume 1.

    Google Scholar 

  21. David A. Padua and Michael J. Wolfe. Advanced compiler optimizations for supercomputers. Communications of the ACM, Volume 29:1184–1201, 1986.

    Article  Google Scholar 

  22. Sergio Pissanetsky. Sparse Matrix Technology. Academic Press, London, 1984.

    Google Scholar 

  23. Reginal P. Tewarson. Sparse Matrices. Academic Press, New York, 1973.

    Google Scholar 

  24. Michael J. Wolfe. Optimizing Supercompilers for Supercomputers. Pitman, London, 1989.

    Google Scholar 

  25. H. Zima. Supercompilers for Parallel and Vector Computers. ACM Press, New York, 1990.

    Google Scholar 

  26. Zahari Zlatev. Computational Methods for General Sparse Matrices. Kluwer, Dordrecht, 1991.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Chua-Huang Huang Ponnuswamy Sadayappan Utpal Banerjee David Gelernter Alex Nicolau David Padua

Rights and permissions

Reprints 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

Publish with us

Policies and ethics