Skip to main content

SIPR: A New Framework for Generating Efficient Code for Sparse Matrix Computations

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

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

Abstract

Developing computational codes that compute with sparse matrices is a difficult and error-prone process. Automatic generation of sparse code from the corresponding dense version would simplify the programmer’s task, provided that a compiler-generated code is fast enough to be used instead of a hand-written code. We propose a new Sparse Intermediate Program Representation (SIPR) that separates the issue of maintaining complicated data structures from the actual matrix computations to be performed. Cost analysis of SIPR allows for the prediction of the program efficiency, and provides a solid basis for choosing efficient sparse implementations among many possible ones. The SIPR framework allows the use of techniques that are frequently used in the hand-written codes but previously were not considered for compiler-generated codes due to their complexity. We have developed tools that allow the automatic generation of efficient C++ implementations from SIPR, and describe experimental results on the performance of those implementations.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Peter M. W. Knijnenburg Aart J. C. Bik and Harry Wijshoff. Reshaping access patterns for generating sparse codes. In Seventh Annual Workshop on Languages and Compilers for Parallel Computing, August 1994.

    Google Scholar 

  2. A. J. C. Bik. Compiler Support for Sparse Matrix Computations. PhD thesis, Leiden University, May 1996.

    Google Scholar 

  3. Aart J. C. Bik and Harry A. G. Wijshoff. Compilation techniques for sparse matrix computations. In ICS93, July 1993.

    Google Scholar 

  4. P. Brinkhaus, A. Bik, and H. Wijshoff. Subrountine on demand-service. http://hp137a.wi.leidenuniv.nl/blas-service/blas.html.

  5. Demmel, Eisenstat, Gilbert, Li, and Liu. A supernodal approach to sparse partial pivoting. Technical Report 95-883, Computer Science Dept., U. of California at Berkeley, Berkeley, CA, September 1995.

    Google Scholar 

  6. I. S. Duff, A. M. Erisman, and J. K. Reid. Direct Methods for Sparse Matrices. Oxford Science Publications, 1992.

    Google Scholar 

  7. I. S. Duff, R. Grimes, and J. Lewis. Sparse matrix test problems. ACM Trans. on Mathematical Software, 15:1–14, 1989.

    Article  MATH  Google Scholar 

  8. A. George and J. W. H. Liu. Computer Solution of Large Sparse Positive-definite Systems. Prentice-Hall, 1981.

    Google Scholar 

  9. J. R. Gilbert, C. Moler, and R. Schreiber. Sparse matrices in matlab: Design and implementation. SIAM J. on Matrix Analysis and Applications, 13(1):333–356, 1992.

    Article  MATH  MathSciNet  Google Scholar 

  10. J. R. Gilbert and T. Peirls. Sparse partial pivoting in time proportional to arithmetic operations. SIAM J. on Scientific and Statistical Computing, 9:862–874, 1988.

    Article  MATH  Google Scholar 

  11. J. Irwin, J.-M. Loingtier, J. Gilbert, G. Kiczales, J. Lamping, A. Mendhekar, and T. Shpeisman. Aspect-oriented programming of sparse matrix code. In International Scientific Computing in Object-Oriented Parallel Environments, December 1997. Marina del Rey, CA.

    Google Scholar 

  12. Wayne Kelly and William Pugh. Minimizing communication while preserving parallelism. In Proceedings of the 1996 International Conference on Supercomputing, May 1996.

    Google Scholar 

  13. V. Kotlyar and K. Pingali. Sparse code generation for imperfectly nested loops with dependences. In Proceedings of the 1997 International Conference on Supercomputing, July 1997.

    Google Scholar 

  14. V. Kotlyar, K. Pingali, and P. Stodghill. A relational approach to the compilation of sparse matrix programs. In EuroPar 97, 1997.

    Google Scholar 

  15. Tatiana Shpeisman. Generation of the efficient code for sparse matrix computations. Ph.D. Thesis Proposal, Dept. of Computer Science, University of Maryland, College Park, January 1998.

    Google Scholar 

  16. P. Stodghill. A Relational Approach to the Automatic Generation of Sequential Sparse Matrix Codes. PhD thesis, Dept. of Computer Science, Cornell U., 1997.

    Google Scholar 

  17. K. Pingali V. Kotlyar and P. Stodghill. Compiling parallel sparse code for user defined data structures. In “Eighth SIAM Conference on Parallel Processing for Scientific Computing”, March 1997.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Pugh, W., Shpeisman, T. (1999). SIPR: A New Framework for Generating Efficient Code for Sparse Matrix Computations. In: Chatterjee, S., et al. Languages and Compilers for Parallel Computing. LCPC 1998. Lecture Notes in Computer Science, vol 1656. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48319-5_14

Download citation

  • DOI: https://doi.org/10.1007/3-540-48319-5_14

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-66426-0

  • Online ISBN: 978-3-540-48319-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics