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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Anderson, E., et al.: LAPACK Users’ Guide. SIAM, Philadelphia (1992)
Auer, A., et al.: Automatic code generation for many-body electronic structure methods: The tensor contraction engine. Molecular Physics (2005)
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)
Bientinesi, P., et al.: Representing linear algebra algorithms in code: The FLAME application programming interfaces. ACM Trans. Math. Soft. 31(1), 27–59 (2005)
Bientinesi, P., et al.: Families of algorithms related to the inversion of a symmetric positive definite matrix. ACM Trans. Math. Soft. 35(1) (2008)
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)
Chan, E., et al.: Collective communication: theory, practice, and experience. Concurrency and Computation: Practice and Experience 19(13), 1749–1783 (2007)
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)
Dongarra, J.J., et al.: An extended set of FORTRAN basic linear algebra subprograms. ACM Trans. Math. Soft. 14(1), 1–17 (1988)
Dongarra, J.J., et al.: A set of level 3 basic linear algebra subprograms. ACM Trans. Math. Soft. 16(1), 1–17 (1990)
Goto, K., van de Geijn, R.: High-performance implementation of the level-3 BLAS. ACM Trans. Math. Softw. 35(1), 1–14 (2008)
Goto, K., van de Geijn, R.A.: Anatomy of high-performance matrix multiplication. ACM Trans. Math. Softw. 34(3), 1–25 (2008)
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)
Gunnels, J.A., et al.: Flame: Formal linear algebra methods environment. ACM Trans. Math. Soft. 27(4), 422–455 (2001)
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
Lawson, C.L., et al.: Basic linear algebra subprograms for Fortran usage. ACM Trans. Math. Soft. 5(3), 308–323 (1979)
Marker, B., et al.: Dxter: An automated software generation prototype for dense linear algebra. In: Preparation
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)
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)
Poulson, J., et al.: Elemental: A new framework for distributed memory dense matrix computations. ACM Transactions on Mathematical Software (accepted)
Poulson, J., et al.: Parallel algorithms for reducing the generalized hermitian-definite eigenvalue problem. ACM Transactions on Mathematical Software (submitted)
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)
Riche, T.L.: et al. Software architecture design by transformation. Computer Science report TR-11-19, Univ. of Texas at Austin (2011)
Selinger, P.G., et al.: Access Path Selection in a Relational Database Management System. In: ACM SIGMOD (1979)
Ullman, J.D., et al.: Database Systems: The Complete Book, 1st edn. Prentice Hall PTR, Upper Saddle River (2001)
van de Geijn, R.A.: Using PLAPACK: Parallel Linear Algebra Package. The MIT Press (1997)
Van Zee, F.G.: Libflame: The Complete Reference (2009), http://www.lulu.com
Whaley, R.C., Dongarra, J.J.: Automatically tuned linear algebra software. In: Proceedings of SC (1998)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)