About the BLAS (Basic Linear Algebra Subprograms)

LAPACK routines are written so that as much as possible of the computation is performed by calls to the Basic Linear Algebra Subprograms (BLAS). While LINPACK and EISPACK are based on the vector operation kernels of the Level 1 BLAS, LAPACK was designed at the outset to exploit the Level 3 BLAS -- a set of specifications for Fortran subprograms that do various types of matrix multiplication and the solution of triangular systems with multiple right-hand sides. Because of the coarse granularity of the Level 3 BLAS operations, their use promotes high efficiency on many high-performance computers, particularly if specially coded implementations are provided by the manufacturer.

Highly efficient machine-specific implementations of the BLAS are available for many modern high-performance computers. The BLAS enable LAPACK routines to achieve high performance with transportable software. Although a model Fortran implementation of the BLAS in available from netlib in the BLAS library, it is not expected to perform as well as a specially tuned implementation on most high-performance computers -- on some machines it may give much worse performance -- but it allows users to run LAPACK software on machines that do not offer any other implementation of the BLAS.

More information about the BLAS is available at http://www.netlib.org/blas/faq.html. A list of vendor optimized BLAS is available at that site. In addition, the ATLAS system, described at http://www.netlib.org/atlas/ automatically generates an optimized BLAS library tuned for your architecture.

The BLAS must be downloaded separately from Netlib at http://www.netlib.org/blas/

LAPACK FAQ | Related Projects | About this Site