Because the cluster uses a RAM disk (VNFS) boot scheme, all math libraries
are mounted under /opt. The /opt is NFS mounted on all
nodes. In cases where programs require shared libraries, they can be
accessed over NFS. However, it is best to statically link these libraries
instead of using shared libraries. There will be no performance impact
due to static linking and in some cases performance my be slightly better.
Module files set the LD_LIBRARY_PATH for packages that have shared libraries.
In addition, a package.conf file is placed in /opt/etc/ld.so.conf.d/ which
is included in the library load path.
Description: The ATLAS (Automatically Tuned Linear Algebra Software) project is an ongoing research effort focusing on applying empirical techniques in order to provide portable performance. At present, it provides C and Fortran77 interfaces to a portable efficient BLAS implementation, as well as a few routines from LAPACK.
Note: Atlas is compiled using the Intel Ivybridge architecture, support for new Haswell instructions is not available in the default version of gcc/gfortran
Discussion: The ATLAS libraries are tuned for your specific machine. They should perform much better than the standard BLAS and LAPACK routines. They provide the same library calls as BLAS and LAPACK, but note that the actual libraries are different -- see the examples.
Description: OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version. OpenBLAS is an open source project supported by Lab of Parallel Software and Computational Science, ISCAS.
Discussion: These are optimized for the Intel Haswell processor and are based on the Goto libraries. Please see OpenBLAS. They provide the same library calls as BLAS and most of LAPACK, but note that the actual libraries are different -- see the examples.
Description: SCALAPACK is is a library of high-performance linear algebra routines for parallel distributed memory machines. SCALPACK solves dense and banded linear systems, least squares problems, eigenvalue problems, and singular value problems.
Discussion: SCALAPACK is built with various MPI's (openmpi,mpich,mpich-omx) and BLAS libraries (openblas,atlas). An on-line Scalapack Users Guide is available.
The SCALAPACK module require the appropriate MPI modules
to be loaded first. For example, to use SCALAPACK with MPICH2 and the ATLAS libraries, you will need to
enter the following module commands:
Description: PETSc s a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It supports MPI, shared memory pthreads
Discussion: PETSc is built with various MPI's (openmpi,mpich,mpich-omx) and BLAS libraries (openblas,atlas).
The PETSc module require the appropriate MPI modules
to be loaded first. For example, to use SCALAPACK with MPICH2 and the OpenBLAS libraries, you will need to
enter the following module commands:
Description: FFTW is a C subroutine library for computing the Discrete Fourier Transform
(DFT) in one or more dimensions, of both real and complex data, and of
arbitrary input size. We believe that FFTW, which is free software, should
become the FFT library of choice for most applications. Our benchmarks,
performed on on a variety of platforms, show that FFTW's performance is
typically superior to that of other publicly available FFT software.
Version:3.3.4
Library Location:/opt/fft/fftw/3.3.2/gnu4/lib/
Module Name:fftw/3.3.4/gnu4
Module Defined Library Path:$FFTW3_PATH
Module Defined Include Path:$$FFTW3_INCLUDE
Documentation: Consult the man pages fftwf-wisdom, fftwl-wisdom, fftw-wisdom, ftw-wisdom-to-conf. Consult the on-line documentation:
Discussion: The MPI versions are in a different package (see below).
The libraries (single threaded) have been built for single (libfftw3f.a), long (libfftw3l.a) and double (libfftw3.a) precision.
There are also parallel OpenMP versions with the "_omp" tag.
Older versions of the fftw libraries are available in the Basement Supercomputing repository. RPMS
for version 3.1.2 and 2.1.5 are available. They will install in the /opt/fft/fftw path and include appropriate modules. Documentation can be found by searching the install path.
Discussion: The FFTW MPI modules require the FFTW module (see above
to be loaded first. For example to use MPICH2 FFTW libraries, you will need to
enter the following module commands
Description:
A package of Fortran subprograms for calculating fast Fourier transforms for both complex and real periodic sequences and certain other symmetric sequences
Discussion:
Library FFTPACK5 contains 1D, 2D, and multiple fast Fourier subroutines, written in Fortran 77, for transforming real and complex data, real even and odd wave data, and real even and odd quarter-wave data.
Note that I routines need not be called each time before a B or F routine is called.
All of the transform routines in FFTPACK5 are normalized. Error messages are written to unit 6 by routine XERFFT. The standard version of XERFFT issues an error message and halts execution, so that no FFTPACK routine will return to the calling program with error return IER different than zero. Users may consider modifying the STOP statement in order to call system-specific exception-handling facilities. Consult fftpack5 for further information.
Examples: The on-line manual has
examples for most functions. In addition, the example files are located in /opt/gsl/1.15/gnu4/share/examples.
Discussion:
The GNU Scientific Library (GSL) is free software under the GNU General Public License.
The library provides a wide range of mathematical routines such as random number
generators, special functions and least-squares fitting. There are over 1000 functions
in total with an extensive test suite. The complete range of subject areas covered
by the library includes,
Complex Numbers, Roots of Polynomials, Special Functions,
Vectors and Matrices, Permutations, Sorting,
BLAS Support, Linear Algebra, Eigensystems,
Fast Fourier Transforms, Quadrature, Random Numbers,
Quasi-Random Sequences, Random Distributions, Statistics,
Histograms, N-Tuples, Monte Carlo Integration,
Simulated Annealing, Differential Equations, Interpolation,
Numerical Differentiation, Chebyshev Approximation, Series Acceleration,
Discrete Hankel Transforms, Root-Finding, Minimization,
Least-Squares Fitting, Physical Constants, IEEE Floating-Point,
and Discrete Wavelet Transforms.
The on-line manual is quite comprehensive.
In addition to examples, the manual offers background and sources for further reading on each topic.
There are also a PostScript version of the manual located in the documentation
The on-line directory.