So also see that applications page.

The Basic Linear Algebra Subprograms (BLAS) are routines that provide
standard building blocks for performing basic vector and matrix operations.
The archive **libblas.rts.a** has been compiled from the f77 source code
downloaded from:

- http://www.netlib.org/blas/
using
*blrts_xlf*v10.1

blrts_xlf -O3 -qhot -qarch=440 -qtune=440 -qmaxmem=-1 -qstrict

To link against the BLAS library add the following at the link step:

-L/bgl/local/lib -lblas.rts

The Basic Linear Algebra Communication Subprograms (BLACS) provide a linear algebra oriented message passing interface. The archives have been compiled from the source code downloaded from:

For Fortran, to link with the BLACS libraries add the following at your link step:

/bgl/local/lib/blacsF77init_MPI-BGL-0.a /bgl/local/lib/blacs_MPI-BGL-0.a /bgl/local/lib/blacsF77init_MPI-BGL-0.a

For C, to link with the BLACS libraries add the following at your link step:

/bgl/local/lib/blacsCinit_MPI-BGL-0.a /bgl/local/lib/blacs_MPI-BGL-0.a /bgl/local/lib/blacsCinit_MPI-BGL-0.a

The LAPACK library contains routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. The associated matrix factorizations (LU, Cholesky, QR, SVD, Schur, generalized Schur) are also provided, as are related computations such as reordering of the Schur factorizations and estimating condition numbers. Dense and banded matrices are handled, but not general sparse matrices. In all areas, similar functionality is provided for real and complex matrices, in both single and double precision.

To link against the lapack library, add the following at the link step:

-L/bgl/local/lib -llapack.rts

- Many LAPACK routines invoke BLAS routines.

To link against the LAPACK library and the BLAS routines in ESSL:

-L/bgl/local/lib -L/opt/ibmmath/lib -llapack.rts -lesslbg - To link against the LAPACK library and the BLAS routines from netlib (described above):

-L/bgl/local/lib -llapack.rts -lblas.rts - The ESSl library contains BLAS routines, is tuned specifically for Blue Gene, and can help significantly in improving performance.
- But be aware that ESSL does not contain all of the standard BLAS routines.
- Information about LAPACK including a hyperlink to LAPACK USER'S GUIDE

IBM's ESSL for SLES on POWER (v4.2.5) that supports Blue Gene/L has been installed on the Front-End Node. ESSL provides over 150 math subroutines (Linear Algebra, Matrix operations, Sorting and Searching, FFT, Random Number Generator, etc.) that have been specifically tuned for performance on BG/L.

ESSL subroutines are for Serial code. Parallel ESSL (PESSL) in not available on the Blue Gene/L.
**SCALAPAC** provides parallel subroutines available on the Blue Gene/L.

The ESSL routines have been installed on the Front-End host under **/opt/ibmmath/lib**
and the header files under **/opt/ibmmathc/include**. Thus, to link your
code to the ESSL library you should use (Fortran):

blrts_xlf example.f -L/opt/ibmmath/lib -lesslbg

Information on the ESSL subroutines is available on the command line of the
Front-End host using the installed man pages. For example, to obtain a description of
the subroutine *sasum*, type: ** man sasum **

- The ESSL
**Guide and Reference**is available (in**pdf**) at:

http://publib.boulder.ibm.com/epubs/pdf/am501403.pdf - For more information about ESSL, refer to the following web address:

http://www-03.ibm.com/systems/p/software/essl.html.

Mathematical Acceleration Subsystem (MASS) for Blue Gene/L consists of libraries of mathematical intrinsic functions tuned specifically for optimum performance on Blue Gene/L. These libraries offer improved performance over the standard mathematical library routines, are thread-safe, and support 32-bit compilations in C, C++, and Fortran applications.

MASS v4.4 (scalar and vector) libraries has been installed on the Front-End node under:
**/opt/ibmcmp/xlmass/bg/4.4/**. The subdirectory **blrts_lib** contains the
"cross-compiled" versions of the libraries. The **lib** and **lib64** subdirectories contain the "native" versions
(for executables that will run on the Front-End node, not on the Blue Gene Compute Nodes).

Chapter 3 of the Using the XL Compilers for Blue Gene Guide (pdf) provides detailed instructions on how to compile and link your code to the MASS libraries.

Add linker option **-Wl,--allow-multiple-definition** to allow multiple definitions for the math routines.

- Mathematical Acceleration Subsystem for Blue Gene/L
- Mathematical Acceleration Subsystem for Blue Gene/L - Features and Benefits
- Using the MASS Libraries on Blue Gene/L
- MASS Library slides of Blue Gene/L System and Optimization Tips by Bob Walkup of IBM
- MASS C/C++ function prototypes for Blue Gene/L
- MASS Fortran Interface blocks for Blue Gene/L
- Performance information for the MASS libraries on Blue Gene/L