The BLAS named as one of the “Ten Codes that Transformed Science”
By Sven Hammarling.
An article in a recent issue of the journal Nature has the title “Ten Codes that Transformed Science”1 .
Two of the codes are purely numerical, namely the fast Fourier transform (FFT) and the Basic Linear Algebra Subprograms (BLAS). The BLAS evolved in three stages, the Level 1 BLAS2 for scalar and vector operations, the Level 2 BLAS3 for matrix-vector operations and the Level 3 BLAS4 for matrix-matrix operations. The first draft proposal for the Level 1 BLAS appeared in the ACM Signum Newsletter in 1973, so the project as a whole spanned about seventeen years.
Two members of the Numerical Linear Algebra Group were directly involved in the development of the BLAS. Jack Dongarra wrote a number of the Level 1 BLAS routines, was involved in testing the routines on an IBM 370/195 and provided several efficient implementations of the routines, all of which was acknowledged in the published paper. Both Jack Dongarra and Sven Hammarling were authors of the Level 2 and 3 BLAS, together with Jeremy Du Croz and Richard Hanson for the Level 2 BLAS, and Jeremy Du Croz and Iain Duff for the Level 3 BLAS.
To take two quotes by Jack Dongarra from the Nature article:
“In effect, BLAS reduced matrix and vector mathematics to a basic unit of computation as fundamental as addition and subtraction … It provides the fabric on which we do computing.”
As well as providing a standard interface, it was hoped that computer manufacturers would provide optimised implementations and that hope has certainly been realised.
It should be said that the BLAS were very much a community project, with input from many people. The BLAS, especially the Level 3 BLAS, provided the basic high performance operations, particularly for the block partitioned methods, used by the LAPACK5 project, which started in 1987, before the actual publication of the Level 3 BLAS.
More recently, driven by modern parallel machines and the desire to solve larger and larger problems, a standard for Batched BLAS (BBLAS) operations has been proposed and has been accepted for publication by ACM ToMS6. The development of the BBLAS was done by the Numerical Linear Algebra Group as part of an EU project, NLAFET7, in collaboration with Jack Dongarra’s Innovative Computing Laboratory at the University of Tennessee.
1J. M. Perkel. Ten Codes that Transformed Science. Nature, 589:344–349, January 2021.
2C. L. Lawson, R. J. Hanson, D. Kincaid, and F. T. Krogh. Basic Linear Algebra Subprograms for FORTRAN usage. ACM Trans. Math. Software, 5:308–323, 1979.
3J. J. Dongarra, J. Du Croz, S. Hammarling, and R. J. Hanson. An extended set of FORTRAN Basic Linear Algebra Subprograms. ACM Trans. Math. Software, 14:1–32, 399, 1988.
4J. J. Dongarra, J. Du Croz, I. S. Duff, and S. Hammarling. A set of Level 3 Basic Linear Algebra Subprograms. ACM Trans. Math. Software, 16:1–28, 1990.
5E. Anderson, Z. Bai, C. H. Bischof, S. Blackford, J. Demmel, J. J. Dongarra, J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, and D. C. Sorensen. LAPACK Users’ Guide. SIAM, Philadelphia, PA, USA, 3rd edition, 1999. ISBN 0-89871-447-8. (http://www.netlib.org/lapack/lug/).
6A Set of Batched Basic Linear Algebra Suprograms, ACM Trans. Math. Software. To appear.
7Deliverable D7.6, (https://www.nlafet.eu/public-deliverables/).