Skip to main content

Software > Mathematical Acceleration Subsystem >

Mathematical Acceleration Subsystem for Blue Gene/L

Features and benefits

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 and functions:

  • Include both scalar and vector functions.
  • Are thread-safe.
  • Offer improved performance over their corresponding standard system library routines.
  • Are intended for use in C, C++, and Fortran applications where slight differences in accuracy or handling of exceptional values can be tolerated.

Note: The MASS libraries for BlueGene/L are preliminary versions provided as a convenience to users, and have not yet been tested as thoroughly as the MASS libraries for other platforms

Mathematical Acceleration Subsystem for Blue Gene/L includes the items described below:
 

Scalar Library 
Vector Libraries
Vector Functions Source Library
 

Scalar libraries

The MASS scalar library, libmass.a, contains an accelerated set of frequently-used math intrinsic functions in the standard system library, plus the added functions dnint for C/C++ and rsqrt for Fortran.  The scalar libraries can be used with either Fortran, C, or C++ applications and will run under Linux on Blue Gene/L. When called from C or Fortran, the scalar MASS functions accept double-precision arguments and return a double-precision result.

The library contains the following scalar functions:

Scalar Library Functions 

atanatan2coscosh
cosisindnintexpexpm1
loglog1ppow  (C/C++)rsqrt
sinsincossinhsqrt
tantanhx**y (Fortran)

Back to top

 

Vector libraries
The vector library, libmassv.a, can be used with either Fortran, C, or C++ applications. 

Vector Library Double-Precision Functions 

vacosvacoshvasinvasinh
vatan2vatanhvcbrtvcos
vcoshvcosisinvdintvdiv
vdnint vexpvexpm1vlog
vlog10vlog1pvpopcnt4vpopcnt8
vpowvqdrtvrcbrtvrec
vrqdrtvrsqrtvsinvsincos
vsinhvsqrtvtanvtanh
   
Vector Library Single-Precision Functions

vsacosvsacoshvsasinvsasinh
vsatan2vsatanhvscbrtvscos
vscoshvscosisinvsdivvsexp
vsexpm1vslogvslog10vslog1p
vspowvsqdrtvsrcbrt vsrec
vsrqdrtvsrsqrtvssinvssincos
vssinhvssqrtvstanvstanh

The MASS vector functions accept double-precision (or single-precision) vector input and output arguments, and an integer vector-length parameter. All the functions in the BlueGene/L MASS library are consistent, in the sense that a given input value will always produce the same result, regardless of its position in the vector, and regardless of the vector length.

Back to top

MASS vector functions source library
Successful use of the MASS vector libraries is contingent on the user vectorizing the application. To assist in that effort, the MASS vector Fortran and C/C++ source libraries are provided to enable application developers to write portable vector code that can run on non-Blue Gene/L systems
 where the MASS libraries are not available.

The source library, libmassv.f, includes Fortran versions of all the vector functions in the MASS vector libraries.

The source library, libmassv.c, includes C/C++ versions of all the vector functions in the MASS vector libraries.

The syntax for the vector functions is visible in libmassv.f and libmassv.c, and the user can write code using these functions to obtain code that may port to systems other than the Blue Gene/L, pSeries and RS/6000 systems. The user can then use the faster MASS vector libraries with that same code when running on a Blue Gene/L, pSeries or RS/6000 system.

Back to top

We're here to help
Easy ways to get the answers you need.
Request a quote
E-mail IBM

Or call us at:
877-426-3774
Priority code:
104CBW67


Technical details

Performance of MASS Libraries on Blue Gene/L

Accuracy Information for MASS Libraries on Blue Gene/L

Using MASS Libraries on Blue Gene/L


Upgrades/Migrations

Download MASS Libraries V4.3 for Blue Gene/L

Download MASS Libraries V4.2 for Blue Gene/L


Further reading

C Prototypes for MASS on Blue Gene/L

Fortran Interface Blocks for MASS on Blue Gene/L