Deprecated: please see new documentation site.


Mathematical Accelaration SubSystem (MASS)


MASS stands for "Mathematical Acceleration SubSystem".


* consists of tuned intrinsic mathematical functions such as sin(), cos(), log() and exp().
* supports C, C++ and Fortran. I
* has both scalar and vector versions.
* is thread-safe.
* usually provides better performance over the original intrinsic functions, but at the expense of reduced precision (1 to 2 bits at most).


For the scalar version, it's quite simple: just link your program with option -lmass. Example:

xlf90_r hello.f90 -lmass

For the vector version, it's a bit more compliated. First, you need to tweak your code a little. For example, the code below

double precision :: a(100),b(100)
do i=1,100

needs to be rewritten as:

double precision :: a(100),b(100)

Then link it with -lmassv or -lmassvp5:

xlf90_r test.f90 -lmassvp5



IBM documentation (not much stuff here): [1]

A detailed introduction from Naval Oceanographic Office: [2]

Engineering and Scientific Subroutines (ESSL)


"ESSL is a state-of-the-art collection of subroutines providing a wide range of mathematical functions for many different scientific and engineering applications. Its primary characteristics are performance, functional capability, and usability."

ESSL provides subroutines in the following areas:

* Linear Algebra Subprograms
* Matrix Operations
* Linear Algebraic Equations
* Eigensystem Analysis
* Fourier Transforms, Convolutions and Correlations, and Related Computations
* Sorting and Searching
* Interpolation
* Numerical Quadrature
* Random Number Generation

Most real and complex subroutines in ESSL has two versions: short- and long-precision. For example, SGEMM and DGEMM are the short- and long-precision versions of subroutines that perform combined matrix multiplication and addition for general matrices, respectively.


After writing your code, the only thing you need to do is to compile it with the option -lessl. For example:

xlf90_r test.f90 -lessl



Manual page (HTML format):[3]

Parellel ESSL (PESSL)

Users may direct questions to

Powered by MediaWiki