Representing linear algebra algorithms in code: the FLAME application program interfaces
- 1 March 2005
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Mathematical Software
- Vol. 31 (1) , 27-59
- https://doi.org/10.1145/1055531.1055533
Abstract
In this article, we present a number of Application Program Interfaces (APIs) for coding linear algebra algorithms. On the surface, these APIs for the MATLAB M-script and C programming languages appear to be simple, almost trivial, extensions of those languages. Yet with them, the task of programming and maintaining families of algorithms for a broad spectrum of linear algebra operations is greatly simplified. In combination with our Formal Linear Algebra Methods Environment (FLAME) approach to deriving such families of algorithms, dozens of algorithms for a single linear algebra operation can be derived, verified to be correct, implemented, and tested, often in a matter of minutes per algorithm. Since the algorithms are expressed in code much like they are explained in a classroom setting, these APIs become not just a tool for implementing libraries, but also a valuable tool for teaching the algorithms that are incorporated in the libraries. In combination with an extension of the Parallel Linear Algebra Package (PLAPACK) API, the approach presents a migratory path from algorithm to MATLAB implementation to high-performance sequential implementation to parallel implementation. Finally, the APIs are being used to create a repository of algorithms and implementations for linear algebra operations, the FLAME Interface REpository (FIRE), which already features hundreds of algorithms for dozens of commonly encountered linear algebra operations.Keywords
This publication has 10 references indexed in Scilit:
- The science of deriving dense linear algebra algorithmsACM Transactions on Mathematical Software, 2005
- A Parallel Eigensolver for Dense Symmetric Matrices Based on Multiple Relatively Robust RepresentationsSIAM Journal on Scientific Computing, 2005
- Formal derivation of algorithmsACM Transactions on Mathematical Software, 2003
- Accuracy and Stability of Numerical AlgorithmsPublished by Society for Industrial & Applied Mathematics (SIAM) ,2002
- Optimizing the Use of High Performance Software LibrariesPublished by Springer Nature ,2001
- FLAMEACM Transactions on Mathematical Software, 2001
- PLAPACKPublished by Association for Computing Machinery (ACM) ,1997
- A set of level 3 basic linear algebra subprogramsACM Transactions on Mathematical Software, 1990
- An extended set of FORTRAN basic linear algebra subprogramsACM Transactions on Mathematical Software, 1988
- Basic Linear Algebra Subprograms for Fortran UsageACM Transactions on Mathematical Software, 1979