Installed Math Libraries
The following libraries are now installed under /opt
- BLAS - non optimized Fortran Version
- LAPACK - non optimized Fortran Version
- ATLAS - machine optimized BLAS and LAPACK
- FFTW2 - Fast Fourier Transform Library (V2)
- FFTW2 MPI - Fast Fourier Transform Library (V2 MPI support)
- FFTW3 - Fast Fourier Transform Library (V3)
- FFTPACK - Fast Fourier Transform Library
- GSL - GNU Scientific Library
Libraries and the VNFS
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.
If you are using dynamic linking (shared libraries), then you should
make sure you set your LD_LIBRARY_PATH to the appropriate library path
in your .bashrc or .cshrc file.
- Description: The BLAS (Basic Linear Algebra Subprograms) library for Linux
- Version: 3.1.0
- Library Location: /opt/blas/gnu4/lib/
- Module Name: blas-gnu4
- Module Defined Path: $BLAS_PATH
- Documentation: man intro_blas1 (man path is set after loading module) Consult BLAS at NetLib as well.
- Example: See LAPACK
- Discussion: Non optimized BLAS library. Normally these routines
are used by LAPACK.
The default is for the GNU compilers. If versions
for other compilers exist, they will be in
/opt/blas/other_compiler/lib/, where other_compiler is the name of the other compiler(s).
- Description: The LAPACK libraries for numerical linear algebra.
- Version: 3.1.0
- Library Location: /opt/lapack/gnu4/lib/
- Module Name:lapack-gnu4
- Module Defined Path: $LAPACK_PATH
- Documentation: README Consult LAPACK at NetLib as well.
- Examples: Note: A command line example is at the end of each Makefile
- Discussion: Non optimized LAPACK library. These routines
use the BLAS libraries.
The default is for the GNU compilers. If versions
for other compilers exist, they will be in
/opt/lapack/other_compiler/lib/, where other_compiler is the name of the other compiler(s).
- 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.
- Version: 3.7.26
- Library Location: /opt/ATLAS/gnu4/lib
- Module Name: atlas-gnu4
- Module Defined Path: $ATLAS_PATH
- Documentation: Consult INDEX.txt and these files.
- Examples: Note: A command line example is at the end of each Makefile
- 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: FFTW V2 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: 2.15
- Library Location:/opt/fftw/2.1.5/gnu4/lib/
- Module Name: fftw2-gnu4
- Module Defined Paths: $FFT2_PATH, $FFTW2_INCLUDE
- Documentation: There are no man pages for FFTW V2, there are info pages, however. (after loading the module, enter info fftw)
- Example:
fftw2-test.f and Makefile
- Discussion: FFTW version 2 supports MPI (libfftw_mpi.a) and threads (libfftw_threads.a). OpenMP versions are not supported with the GNU compilers.
The libraries
are labeled accordingly. Although the MPI versions should be able to link with
a standard MPI library, some linking problems may occur. The MPI library
should be compiled with the same compiler that was used for the version of FFTW.
There are single (includes an "s" as in libsfftw.a and
double precision (libfftw.a) version of the libraries. Real (librfftw.a)
and complex (libfftw.a) transforms are supported as well.
- Description: FFTW V2 supports MPI communication. Please note that
FFTW V3 does not.
FFTW2 has been compiled to support the various MPI libraries on your system.
- Version: 2.15
- Library Location:/opt/fftw/2.1.5/gnu4/lib/{mpich,mpich2,lam,openmpi}
- Module Name: fftw2-{mpich,mpich2,lam,openmpi}-gnu4
- Module Defined Paths: $FFT2_MPI_PATH, $FFTW2_INCLUDE
- Documentation: There are no man pages for FFTW V2, there are info pages, however. (after loading the module, enter info fftw)
- Example: See above
- Discussion: The FFTW version 2 MPI modules require the FFTW2 module (see above
to be loaded first. For example to use MPICH FFTW version 2 libraries, you will need to
enter the following module commands
module load fftw2-gnu4
module load fftw2-mpich-gnu4
You may have more (or less) MPI versions than those mentioned here. Use the module avail
command to see which modules are available on your system.
- 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.1.2
- Library Location:/opt/fftw/3.1.2/gnu4/lib/
- Module Name: fftw3-gnu4
- Module Defined Paths: $FFT3_PATH, $FFTW3_INCLUDE
- Documentation: There are man pages for fftw-wisdom
- Example:
fftw3-test-single.f, fftw3-test-double.f and Makefile
- Discussion: There are no MPI versions of FFTW V3. There are threaded versions however (libfftw3_threads.a). The libraries have been built for
single (libfftw3f.a), long (libfftw3l.a) and double (libfftw3.a) precision.
- Description:
A package of Fortran subprograms for calculating
fast Fourier transforms for both complex and real
periodic sequences and certain other symmetric
sequences
- Version: 5.0
- Library Location:/opt/fftpack/5.0/gnu4/lib/
- Module Name: fftpack-gnu4
- Module Defined Paths: $FFTPACK_PATH
- Documentation: There are no man pages FFTPACK
- Example:
fftpack5_prb.f90 and Makefile
- 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.
- Description: The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers.
- Version: 1.9
- Library Location: /opt/gsl/1.9/gnu4/lib
- Module Name: gsl-gnu4
- Module Defined Paths: $GSL_PATH, $GSL_INCLUDE
- Documentation: manual
- Examples: The online manual has
examples for most functions. In addition, the example files are located here.
- 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 online manual is quite comprehensive.
In addition to examples, the manual offers background and sources for further reading on each topic.
There are also text and PostScript versions of the manual located in the documentation
The online directory.
If you are linking dynamically (using shared library files), then you will need to set your LD_LIBRARY_PATH to the
appropriate library path. For example in a bash environment:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GSL_PATH
This command should be placed in your .bashrc file. For a csh environment:
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:$GSL_PATH
This command should be placed in your .cshrc file.
This page, and all contents,
are Copyright © 2007,2008 by Basement Supercomputing,
Bethlehem, PA, USA, All Rights Reserved. This notice must appear on all
copies (electronic, paper, or otherwise) of this document.