The simultaneous achievement of both easy portability and high performance is one of the main challenges in the production of mathematical software. One of the most successful and far-reaching efforts in this regard has been the development of the Basic Linear Algebra Subprograms (BLAS). The BLAS provide an application programmer’s interface for fundamental operations of numerical linear algebra. Using the BLAS, programmers can express their algorithms at a higher level of abstraction, making the resulting codes easier to understand and maintain. Because the BLAS specify operations that are found at the core of many scientific applications, library developers are motivated to develop implementations that are highly efficient; indeed, highly optimized versions of the BLAS now exist for nearly every computing system. In this way, the BLAS have provided key infrastructure for both portability and performance in mathematical software. Today, the BLAS form the cornerstone of nearly every large mathematical software library. First introduced in 1979 [Lawson et al. 1979a, 1979b], the BLAS effort has not been static. Two subsequent editions of the BLAS, Level 2 (1988) [Dongarra et al. 1988a, 1988b] and Level 3 (1990) [Dongarra et al. 1990a, 1990b], were developed to embrace higher-level operations and capture much higher levels of performance. During this period, many proposals for extensions of the BLAS in a variety of directions were also made. In 1995, the BLAS Technical (BLAST) Forum was established to formally consider further expansion of the BLAS in the light of modern software, language, and hardware developments. The open forum attracted many participants from academia, government, and private industry. Among the topics discussed were overall functionality, language interfaces, sparse matrix operations, distributed-memory dense matrix operations, extended and mixed precision operations, support of interval arithmetic, and extensions to the existing BLAS. In the end, formal specifications for three sets of BLAS were developed: (1) dense and banded, (2) sparse, and (3) extended and mixed precision. The formal specification for the new standard appears in Blackford et al. [2001]. In this issue of the ACM Transactions on Mathematical Software, we have collected together a set of research contributions which provide some of the technical background behind the development of the new BLAS standard.
[1]
Jack J. Dongarra,et al.
A set of level 3 basic linear algebra subprograms
,
1990,
TOMS.
[2]
Charles L. Lawson,et al.
Algorithm 539: Basic Linear Algebra Subprograms for Fortran Usage [F1]
,
1979,
TOMS.
[3]
Jack J. Dongarra,et al.
An extended set of FORTRAN basic linear algebra subprograms
,
1988,
TOMS.
[4]
Jack J. Dongarra,et al.
Algorithm 656: an extended set of basic linear algebra subprograms: model implementation and test programs
,
1988,
TOMS.
[5]
Jack Dongarra,et al.
Preface: Basic Linear Algebra Subprograms Technical (Blast) Forum Standard
,
2002
.
[6]
Charles L. Lawson,et al.
Basic Linear Algebra Subprograms for Fortran Usage
,
1979,
TOMS.
[7]
Jack J. Dongarra,et al.
Algorithm 679: A set of level 3 basic linear algebra subprograms: model implementation and test programs
,
1990,
TOMS.