Deprecated: please see new documentation site.


Contents


Mathematical Accelaration SubSystem (MASS)

Introduction

MASS stands for "Mathematical Acceleration SubSystem".


MASS

* 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).


Usage

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
  b(i)=sin(a(i))
enddo

needs to be rewritten as:

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

Then link it with -lmassv or -lmassvp5:

xlf90_r test.f90 -lmassvp5

Performance

Documentation

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

A detailed introduction from Naval Oceanographic Office: [2]

Engineering and Scientific Subroutines (ESSL)

Introduction

"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.

Usage

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

Performance

Documentation

Manual page (HTML format):[3]

Parellel ESSL (PESSL)


Users may direct questions to sys-help@loni.org.

Powered by MediaWiki