The FLAME Project
Contents
Objective
The objective of the FLAME project is to transform the development of dense linear algebra libraries from an art reserved for experts to a science that can be understood by novice and expert alike. Rather than being only a library, the project encompasses a new notation for expressing algorithms, a methodology for systematic derivation of algorithms, Application Program Interfaces (APIs) for representing the algorithms in code, and tools for mechanical derivation, implementation and analysis of algorithms and implementations.
The Library: libflame
Many visitors of this wiki will be primarily interested in the high-performance dense linear algebra library that has resulted from the FLAME project. Information on how to download and use this library can be found HERE.
Notation
The key insight that enables the FLAME methodology is a new, more stylized notation for expressing loop-based linear algebra algorithms. This notation closely resembles how algorithms are naturally illustrated with pictures.
Related publications
- Paolo Bientinesi, Enrique S. Quintana-Ortí, and Robert van de Geijn. "Representing Linear Algebra Algorithms in Code: The FLAME APIs," TOMS, 31(1):27-59, March 2005.
- Robert A. van de Geijn and Enrique S. Quintana-Ortí. The Science of Programming Matrix Computations. www.lulu.com. 2008.
Derivation
The FLAME project promotes the systematic derivation of loop-based algorithms hand-in-hand with the proof of their correctness. Key is the ability to identify the loop-invariant: the state to be maintained before and after each loop iteration, which then prescribes the loop-guard, the initialization before the loop, how to progress through the operand(s), and the updates. To derive the shown algorithm for LU factorization one fills in the below "worksheet". In the grey-shaded areas predicates appear that ensure the correctness of the algorithm.
Related publications
- John A. Gunnels, Fred G. Gustavson, Greg M. Henry, and Robert A. van de Geijn, "FLAME: Formal Linear Algebra Methods Environment," TOMS, 27(4):422-455, December 2001.
- Paolo Bientinesi, John A. Gunnels, Margaret E. Myers, Enrique S. Quintana-Ortí, and Robert van de Geijn, "The Science of Deriving Dense Linear Algebra Algorithms," TOMS, 31(1):1-26, March 2005.
- Robert A. van de Geijn and Enrique S. Quintana-Ortí. The Science of Programming Matrix Computations. www.lulu.com. 2008.
|
APIs
A number of APIs have been defined fo representing the algorithms in different languages. These include
FLaTeX |
FLAME LaTeX commads for typesetting algorithms and worksheets. |
FLAME@lab |
FLAME M-script (Matlab/Octave) API. |
FLAME/C |
FLAME API for the C programming language. |
FLASH |
Extension that allows matrices to be viewed (hierarchically) as submatrices |
FLARE |
The Formal Linear Algebra Recovery Environment (FLARE) adds algorithmic fault-tolerance to some FLAME implementations. |
SuperMatrix
Runtime system for scheduling tasks with submatrices to threads
Related publications
- Paolo Bientinesi, Enrique S. Quintana-Ortí, and Robert van de Geijn. "Representing Linear Algebra Algorithms in Code: The FLAME APIs," TOMS, 31(1):27-59, March 2005.
- Tze Meng Low, Kent Milfeld, Robert van de Geijn, and Field Van Zee. "Parallelizing FLAME Code with OpenMP Task Queues," FLAME Working Note #15. The University of Texas at Austin, Department of Computer Sciences. Technical Report TR-2004-50.
- John A. Gunnels, Daniel S. Katz, Enrique S. Quintana-Ortí, and Robert van de Geijn. "Fault-Tolerant High-Performance Matrix-Matrix Multiplication: Theory and Practice," The International Conference for Dependable Systems and Networks (DSN-2001), pp. 47-56, July 2-4, 2001.
- Robert A. van de Geijn and Enrique S. Quintana-Ortí. The Science of Programming Matrix Computations. www.lulu.com. 2008.
Downloads
Libraries and materials can be downloaded for those interested in trying the approach and resulting libraries.
Publications and Reference Materials
We maintain a number of documents and web pages.
Robert A. van de Geijn and Enrique S. Quintana-Orti. The Science of Programming Matrix Computations. www.lulu.com, 2008.
Field G. Van Zee. libflame: The Complete Reference. www.lulu.com, 2009.
- FLAME/C online reference materials
A listing of all routines that are part of the libFLAME library has been automatically compiled with Doxygen.
Information for Developers
libflame and related projects are maintained in a repository managed with subversion.
Contact us
Please e-mail us at flame@cs.utexas.edu , field@cs.utexas.edu , or rvdg@cs.utexas.edu




