BLAS Frequently Asked Questions (FAQ)

lapack@cs.utk.edu

Many thanks to the netlib_maintainers@netlib.org from whose FAQ list I have patterned this list for the BLAS.

Table of Contents

1.1) What are the BLAS?
1.2) Publications/references for the BLAS?
1.3) Is there a Quick Reference Guide to the BLAS available?
1.4) Are optimized BLAS libraries available?
1.5) What is ATLAS?
1.6) Where can I find vendor supplied BLAS?
1.7) Where can I find the Intel BLAS for Linux?
1.8) Where can I find Java BLAS?
1.9) Is there a C interface to the BLAS?
1.10) Are prebuilt Fortran77 ref implementation BLAS libraries available from Netlib?

1) BLAS

1.1) What are the BLAS?

The BLAS (Basic Linear Algebra Subprograms) are high quality "building block" routines for performing basic vector and matrix operations. Level 1 BLAS do vector-vector operations, Level 2 BLAS do matrix-vector operations, and Level 3 BLAS do matrix-matrix operations. Because the BLAS are efficient, portable, and widely available, they're commonly used in the development of high quality linear algebra software, LINPACK and LAPACK for example.

A Fortran77 reference implementation of the BLAS is located in the blas directory of Netlib.

1.2) Publications/references for the BLAS?

  1. C. L. Lawson, R. J. Hanson, D. Kincaid, and F. T. Krogh, Basic Linear Algebra Subprograms for FORTRAN usage, ACM Trans. Math. Soft., 5 (1979), pp. 308--323.

  2. J. J. Dongarra, J. Du Croz, S. Hammarling, and R. J. Hanson, An extended set of FORTRAN Basic Linear Algebra Subprograms, ACM Trans. Math. Soft., 14 (1988), pp. 1--17.

  3. J. J. Dongarra, J. Du Croz, S. Hammarling, and R. J. Hanson, Algorithm 656: An extended set of FORTRAN Basic Linear Algebra Subprograms, ACM Trans. Math. Soft., 14 (1988), pp. 18--32.

  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. Soft., 16 (1990), pp. 1--17.

  5. J. J. Dongarra, J. Du Croz, I. S. Duff, and S. Hammarling, Algorithm 679: A set of Level 3 Basic Linear Algebra Subprograms, ACM Trans. Math. Soft., 16 (1990), pp. 18--28.

1.3) Is there a Quick Reference Guide to the BLAS available?

Yes, there is a postscript version of the Quick Reference Guide to the BLAS available.

1.4) Are optimized BLAS libraries available?

YES! Machine-specific optimized BLAS libraries are available for a variety of computer architectures. These optimized BLAS libraries are provided by the computer vendor or by an independent software vendor (ISV). For further details, please contact your local vendor representative.

Alternatively, the user can download ATLA S to automatically generate an optimized BLAS library for his architecture.

If all else fails, the user can download a Fortran77 reference implementation of the BLAS from netlib. However, keep in mind that this is a reference implementation and is not optimized.

1.5) What is ATLAS?

ATLAS is an approach for the automatic generation and optimization of numerical software for processors with deep memory hierarchies and pipelined functional units. The production of such software for machines ranging from desktop workstations to embedded processors can be a tedious and time consuming task. ATLAS has been designed to automate much of this process. We concentrate our efforts on the widely used linear algebra kernels called the Basic Linear Algebra Subroutines (BLAS).

For further information, refer to the ATLAS webpage.

1.6) Where can I find vendor supplied BLAS?

BLAS Vendor List
Last updated: March 14, 2001


Vendor

URL

Compaq http://www.compaq.com/hpc/software/dxml.html
HP http://www.hp.com/rsn/mlib/mlibhome.html
IBM http://www.rs6000.ibm.com/software/Apps/essl.html
http://www.rs6000.ibm.com/software/sp_products/esslpara.html
Intel http://developer.intel.com/software/products/mkl/index.htm
SGI http://www.sgi.com/software/scsl.html
SUN http://docs.sun.com/htmlcoll/coll.118.3/iso-8859-1/PERFLIBUG/plug_bookTOC.html

1.7) Where can I find the Intel BLAS for Linux?

Yes, the Intel BLAS for Linux are available! Refer to the following URL: Intel BLAS for Linux.

1.8) Where can I find Java BLAS?

Yes, Java BLAS are available. Refer to the following URLs: Java LAPACK and JavaNumerics. The JavaNumerics webpage provides a focal point for information on numerical computing in Java.

1.9) Is there a C interface to the BLAS?

Yes, a C interface to the BLAS was defined in the BLAS Technical Forum Standard. The source code is also available.

1.10) Are prebuilt Fortran77 ref implementation BLAS libraries available from Netlib?

Yes. HOWEVER, it is assumed that you have a machine-specific optimized BLAS library already available on the architecture to which you are installing LAPACK. If this is not the case, you can download a prebuilt Fortran77 reference implementation BLAS library or compile the Fortran77 reference implementationsource code of the BLAS from netlib.

Although a model implementation of the BLAS in available from netlib in the blas directory, 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.

Alternatively, you can automatically generate an optimized BLAS library for your machine using ATLAS,

http://www.netlib.org/atlas/
.

lapack@cs.utk.edu