Knowledge-Based Automatic Generation of Partitioned Matrix Expressions

  • Diego Fabregat-Traver
  • Paolo Bientinesi
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6885)

Abstract

In a series of papers it has been shown that for many linear algebra operations it is possible to generate families of algorithms by following a systematic procedure. Although powerful, such a methodology involves complex algebraic manipulation, symbolic computations and pattern matching, making the generation a process challenging to be performed by hand. We aim for a fully automated system that from the sole description of a target operation creates multiple algorithms without any human intervention. Our approach consists of three main stages. The first stage yields the core object for the entire process, the Partitioned Matrix Expression (PME), which establishes how the target problem may be decomposed in terms of simpler sub-problems. In the second stage the PME is inspected to identify predicates, the Loop-Invariants, to be used to set up the skeleton of a family of proofs of correctness. In the third and last stage the actual algorithms are constructed so that each of them satisfies its corresponding proof of correctness. In this paper we focus on the first stage of the process, the automatic generation of Partitioned Matrix Expressions. In particular, we discuss the steps leading to a PME and the knowledge necessary for a symbolic system to perform such steps. We also introduce cl1ck, a prototype system written in Mathematica that generates PMEs automatically.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    FLAME Project: FLAME Online Reference, http://z.cs.utexas.edu/wiki/flame.wiki/
  2. 2.
    Dongarra, J.J., Du Croz, J., Hammarling, S., Duff, I.S.: A set of level 3 basic linear algebra subprograms. ACM Trans. Math. Softw. 16, 1–17 (1990)CrossRefMATHGoogle Scholar
  3. 3.
    Jonsson, I., Kågström, B.: Recursive blocked algorithms for solving triangular systems—part i: one-sided and coupled sylvester-type matrix equations. ACM Transactions on Mathematical Software 28(4), 392–415 (2002)MathSciNetCrossRefMATHGoogle Scholar
  4. 4.
    Jonsson, I., Kågström, B.: Recursive blocked algorithms for solving triangular systems—part ii: Two-sided and generalized sylvester and lyapunov matrix equations. ACM Transactions on Mathematical Software 28(4), 416–435 (2002)MathSciNetCrossRefMATHGoogle Scholar
  5. 5.
    Anderson, E., Bai, Z., Bischof, C., Blackford, S., Demmel, J., Dongarra, J., Du Croz, J., Greenbaum, A., Hammarling, S., McKenney, A., Sorensen, D.: LAPACK Users’ Guide, 3rd edn. Society for Industrial and Applied Mathematics, Philadelphia (1999)CrossRefMATHGoogle Scholar
  6. 6.
    Whaley, R.C., Dongarra, J.: Automatically tuned linear algebra software. In: SuperComputing 1998: High Performance Networking and Computing (1998)Google Scholar
  7. 7.
    Frigo, M., Johnson, S.G.: The design and implementation of FFTW3. Proceedings of the IEEE 93(2), 216–231 (2005); Special issue on “Program Generation, Optimization, and Platform Adaptation”CrossRefGoogle Scholar
  8. 8.
    Püschel, M., Moura, J.M.F., Johnson, J., Padua, D., Veloso, M., Singer, B., Xiong, J., Franchetti, F., Gacic, A., Voronenko, Y., Chen, K., Johnson, R.W., Rizzolo, N.: SPIRAL: Code generation for DSP transforms. Proceedings of the IEEE 93(2), 232–275 (2005); special issue on “Program Generation, Optimization, and Adaptation”Google Scholar
  9. 9.
    Bientinesi, P., Gunnels, J.A., Myers, M.E., Quintana-Ortí, E.S., van de Geijn, R.A.: The science of deriving dense linear algebra algorithms. ACM Transactions on Mathematical Software 31(1), 1–26 (2005)MathSciNetCrossRefMATHGoogle Scholar
  10. 10.
    Bientinesi, P., Quintana-Ortí, E.S., van de Geijn, R.: FLAME lab: A farewell to indices. FLAME Working Note #11. Technical Report TR-2003-11, The University of Texas at Austin, Department of Computer Sciences (April 2003)Google Scholar
  11. 11.
    Quintana-Ortí, E.S., van de Geijn, R.A.: Formal derivation of algorithms: The triangular Sylvester equation. ACM Transactions on Mathematical Software 29(2), 218–243 (2003)MathSciNetCrossRefMATHGoogle Scholar
  12. 12.
    Poulson, J., van de Geijn, R., Bennighof, J.: Parallel algorithms for reducing the generalized hermitian-definite eigenvalue problem. FLAME Working Note #56. Technical Report TR-11-05, The University of Texas at Austin, Department of Computer Sciences (February 2011)Google Scholar
  13. 13.
    Bientinesi, P., van de Geijn, R.: A goal-oriented and modular approach to stability analysis. SIAM Journal on Matrix Analysis and Applications (to appear, 2011)Google Scholar
  14. 14.
    Wolfram Research: Mathematica Reference Guide, http://reference.wolfram.com/mathematica/
  15. 15.
    Gries, D., Schneider, F.B.: A Logical Approach to Discrete Math. Texts and Monographs in Computer Science. Springer, Heidelberg (1992)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Diego Fabregat-Traver
    • 1
  • Paolo Bientinesi
    • 1
  1. 1.AICES, RWTH AachenGermany

Personalised recommendations