Next: 1.8 Message-Passing Interface Up: 1 Introduction Previous: 1.6.2 Attaining better performance

# 1.7 Basic Linear Algebra Subprograms

Local computation performed by the PLAPACK infrastructure relies heavily upon a few computational kernels generally known as the Basic Linear Algebra Subprograms (BLAS). This set of operations is widely used by linear algebra libraries and applications to perform basic linear algebra operations like inner product, matrix-vector multiplication and matrix-matrix multiplication. By building libraries using these kernels, and expecting the computer vendors to provide highly optimized implementations, high performance can be attained in a portable fashion.

The subprograms are classified into three categories:

•   Level-1 BLAS []:   vector-vector operations. Examples include the   ``axpy'', or scalar a times vector x plus vector y , and the     dot (inner) product of two vectors. Notice that O(n) computation is performed on O(n) data, where n is the length of the vectors involved.
•   Level-2 BLAS []:   matrix-vector operations. Examples include   matrix-vector multiplication and the   solution of a triangular system of equations. Notice that now computation is performed on data, where n is the dimension of the matrix involved.
•   Level-3 BLAS []:   matrix-matrix operations. Examples include   matrix-matrix multiplication and the   solution of a triangular system with multiple right-hand-sides. Notice that computation is performed on data, where n is the dimension of the matrices involved. It is this higher order of computation on less data that is used to overcome the bottleneck of slow access to main memory relative to processor speed.

In the chapters on vector-vector, matrix-vector, and matrix-matrix operations, we discuss the BLAS in detail.

Next: 1.8 Message-Passing Interface Up: 1 Introduction Previous: 1.6.2 Attaining better performance

rvdg@cs.utexas.edu