## 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 BLAS^{2} for scalar and vector operations, the Level 2 BLAS^{3} for matrix-vector operations and the Level 3 BLAS^{4} 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 LAPACK^{5} 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 ToMS^{6}. The development of the BBLAS was done by the Numerical Linear Algebra Group as part of an EU project, NLAFET^{7}, in collaboration with Jack Dongarra’s Innovative Computing Laboratory at the University of Tennessee.

^{1}J. M. Perkel. Ten Codes that Transformed Science. Nature, 589:344–349, January 2021.

^{2}C. 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.

^{3}J. 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.

^{4}J. 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.

^{5}E. 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/).

^{6}A Set of Batched Basic Linear Algebra Suprograms, ACM Trans. Math. Software. To appear.

^{7}Deliverable D7.6, (https://www.nlafet.eu/public-deliverables/).