http://www.netlib.org/blas/index.html BLAS (Basic Linear Algebra Subroutines) <abstract> BLAS (Basic Linear Algebra Subroutines) The BLAS are building blocks for constructing efficient and portable linear algebra software for high-performance computers. The BLAS allow exploitation of parallelism in a way that is transparent to the software that calls them. For example, the LAPACK strategy for combining efficiency with portability is to construct the software as much as possible out of calls to the BLAS. The efficiency of LAPACK software depends on efficient implementations of the BLAS being provided by computer vendors (or others) for their machines. Thus the BLAS form a low-level interface between LAPACK software and different machine architectures. There are three levels of BLAS: Level 1 BLAS: for vector operations Level 2 BLAS: for matrix-vector operations Level 3 BLAS: for matrix-matrix operations The Level 3 BLAS are targeted at computers with a hierarchy of memory (such as global memory, cache or local memory, and vector registers) and true parallel-processing computers. For these architectures, it is often preferable to partition the matrix or matrices into blocks and to perform the computation by matrix-matrix operations on the blocks. this approach avoids excessive movement of data to and from memory. In addition, on architectures that provide for parallel processing, parallelism can be exploited in two ways: (1) operations on distinct blocks may be performed in parallel; and (2) within the operations of each block, scalar or vector operations may be performed in parallel. <keywords>numerical library; linear algebra <category>numerical-linalg </urc>