Hprc banner tamu.png


Revision as of 18:54, 23 October 2015 by J-perdue (talk | contribs) (ESSL Library)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

ESSL Library

The IBM Engineering and Scientific Subroutine Library (ESSL) contains a collection of highly optimized mathematical subroutines, with, depending on version, incomplete implementations of BLAS, LAPACK or FFTW support. The ESSL libraries are thread safe and work with C,C++, and Fortran programs. ESSL includes serial as well as SMP versions.

Compiling/linking programs containing ESSL routines depends on a number of factors; language, serial/SMP, integer size. Below we will provide the various compiler commands for the various cases (for illustration purposes all examples compile a program named hello_essl):

Fortran programs, 32-bit (default) integers :

Serial:  xlf_r -O -qnosave  hello_essl.f90 -lessl
SMP   :  xlf_r -O -qnosave -qsmp hello_essl.f90 -lesslsmp

Fortran programs, 64-bit integers :

Serial:  xlf_r -O -qnosave -qintsize=8 hello_essl.f90 -lessl6464
SMP:     xlf_r -O -qnosave -qsmp  -qintsize=8 hello_essl.f90 -lesslsmp6464

C programs, 32-bit (default) integers :

Serial:  xlc_r -O hello_essl.c -lessl -lxlf90_r -lxlomp_ser
SMP   :  xlc_r -O -qsmp hello_essl.c -lesslsmp  -lxlf90_r -lxlsmp

C programs, 64-bit integers :

Serial:  xlc_r -O -D_ESV6464 hello_essl.c -lessl6464 -lxlf90_r -lxlsmp
SMP:     xlc_r -O -D_ESV6464 hello_essl.c -lesslsmp6464 -lxlf90_r -lxlsmp

NOTE: for C++ programs the compiler commands are very similar to the commands to compile C programs.

NOTE: for C/C++ programs you will also need to include "<essl.h>" to your source code

For more information about the ESSL library, please visit http://publib.boulder.ibm.com/epubs/pdf/a2322684.pdf