Skip to main content

Designing Linear Algebra Algorithms by Transformation: Mechanizing the Expert Developer

  • Conference paper
High Performance Computing for Computational Science - VECPAR 2012 (VECPAR 2012)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 7851))

Abstract

To implement dense linear algebra algorithms for distributed-memory computers, an expert applies knowledge of the domain, the target architecture, and how to parallelize common operations. This is often a rote process that becomes tedious for a large collection of algorithms. We have developed a way to encode this expert knowledge such that it can be applied by a system to generate mechanically the same (and sometimes better) highly-optimized code that an expert creates by hand. This paper illustrates how we have encoded a subset of this knowledge and how our system applies it and searches a space of generated implementations automatically.

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. Anderson, E., et al.: LAPACK Users’ Guide. SIAM, Philadelphia (1992)

    MATH  Google Scholar 

  2. Auer, A., et al.: Automatic code generation for many-body electronic structure methods: The tensor contraction engine. Molecular Physics (2005)

    Google Scholar 

  3. Bientinesi, P.: Mechanical Derivation and Systematic Analysis of Correct Linear Algebra Algorithms. PhD thesis, Department of Computer Sciences, The University of Texas, 2006. Technical Report TR-06-46 (September 2006)

    Google Scholar 

  4. Bientinesi, P., et al.: Representing linear algebra algorithms in code: The FLAME application programming interfaces. ACM Trans. Math. Soft. 31(1), 27–59 (2005)

    Article  MathSciNet  Google Scholar 

  5. Bientinesi, P., et al.: Families of algorithms related to the inversion of a symmetric positive definite matrix. ACM Trans. Math. Soft. 35(1) (2008)

    Google Scholar 

  6. Bientinesi, P., et al.: Families of algorithms related to the inversion of a symmetric positive definite matrix. ACM Trans. Math. Softw. 35(1), 1–22 (2008)

    Article  Google Scholar 

  7. Chan, E., et al.: Collective communication: theory, practice, and experience. Concurrency and Computation: Practice and Experience 19(13), 1749–1783 (2007)

    Article  Google Scholar 

  8. Choi, J., et al.: Scalapack: A scalable linear algebra library for distributed memory concurrent computers. In: Proceedings of the Fourth Symposium on the Frontiers of Massively Parallel Computation, pp. 120–127. IEEE Comput. Soc. Press (1992)

    Google Scholar 

  9. Dongarra, J.J., et al.: An extended set of FORTRAN basic linear algebra subprograms. ACM Trans. Math. Soft. 14(1), 1–17 (1988)

    Article  MathSciNet  MATH  Google Scholar 

  10. Dongarra, J.J., et al.: A set of level 3 basic linear algebra subprograms. ACM Trans. Math. Soft. 16(1), 1–17 (1990)

    Article  MathSciNet  MATH  Google Scholar 

  11. Goto, K., van de Geijn, R.: High-performance implementation of the level-3 BLAS. ACM Trans. Math. Softw. 35(1), 1–14 (2008)

    Article  MATH  Google Scholar 

  12. Goto, K., van de Geijn, R.A.: Anatomy of high-performance matrix multiplication. ACM Trans. Math. Softw. 34(3), 1–25 (2008)

    Article  Google Scholar 

  13. Gunnels, J.A.: A Systematic Approach to the Design and Analysis of Parallel Dense Linear Algebra Algorithms. PhD thesis, Department of Computer Sciences. The University of Texas (December 2001)

    Google Scholar 

  14. Gunnels, J.A., et al.: Flame: Formal linear algebra methods environment. ACM Trans. Math. Soft. 27(4), 422–455 (2001)

    Article  MATH  Google Scholar 

  15. Guyer, S., Lin, C.: Broadway: A compiler for exploiting the domain-specific semantics of software libraries. Proceedings of the IEEE 93, 342–357 (2005); Special issues on program generation, optimization, and adaptation

    Google Scholar 

  16. Lawson, C.L., et al.: Basic linear algebra subprograms for Fortran usage. ACM Trans. Math. Soft. 5(3), 308–323 (1979)

    Article  MATH  Google Scholar 

  17. Marker, B., et al.: Dxter: An automated software generation prototype for dense linear algebra. In: Preparation

    Google Scholar 

  18. Marker, B., et al.: Programming many-core architectures - a case study: Dense matrix computations on the intel scc processor. Concurrency and Computation: Practice and Experience (to appear)

    Google Scholar 

  19. Marker, B., et al.: Designing linear algebra algorithms by transformation: Mechanizing the expert developer. In: PPoPP 2012: Proceedings of the Seventeenth ACM SIGPLAN Symposium on Principles and Practices of Parallel Programming, 2 pages (2012) (to appear)

    Google Scholar 

  20. Poulson, J., et al.: Elemental: A new framework for distributed memory dense matrix computations. ACM Transactions on Mathematical Software (accepted)

    Google Scholar 

  21. Poulson, J., et al.: Parallel algorithms for reducing the generalized hermitian-definite eigenvalue problem. ACM Transactions on Mathematical Software (submitted)

    Google Scholar 

  22. Püschel, M., et al.: SPIRAL: Code generation for DSP transforms. Proceedings of the IEEE, Special Issue on “Program Generation, Optimization, and Adaptation” 93(2), 232–275 (2005)

    Google Scholar 

  23. Riche, T.L.: et al. Software architecture design by transformation. Computer Science report TR-11-19, Univ. of Texas at Austin (2011)

    Google Scholar 

  24. Selinger, P.G., et al.: Access Path Selection in a Relational Database Management System. In: ACM SIGMOD (1979)

    Google Scholar 

  25. Ullman, J.D., et al.: Database Systems: The Complete Book, 1st edn. Prentice Hall PTR, Upper Saddle River (2001)

    Google Scholar 

  26. van de Geijn, R.A.: Using PLAPACK: Parallel Linear Algebra Package. The MIT Press (1997)

    Google Scholar 

  27. Van Zee, F.G.: Libflame: The Complete Reference (2009), http://www.lulu.com

  28. Whaley, R.C., Dongarra, J.J.: Automatically tuned linear algebra software. In: Proceedings of SC (1998)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Marker, B., Poulson, J., Batory, D., van de Geijn, R. (2013). Designing Linear Algebra Algorithms by Transformation: Mechanizing the Expert Developer. In: Daydé, M., Marques, O., Nakajima, K. (eds) High Performance Computing for Computational Science - VECPAR 2012. VECPAR 2012. Lecture Notes in Computer Science, vol 7851. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-38718-0_34

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-38718-0_34

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-38717-3

  • Online ISBN: 978-3-642-38718-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics