This Mathematical Software Overview compares the chief mathematical subroutine libraries available and explains the lookup and support tools (including reference manuals) that help you use those libraries effectively. It also introduces a few important, commercial, interactive math tools available at LC.

The belief behind LC's approach to mathematical software support is that computational tasks required in a wide variety of applications share common, mathematically defined features to which general purpose techniques can be applied. This results in a long-term overall cost savings through software reuse and reduced duplication of effort. This approach was long embodied in LC's former Mathematical Software Support Service (MSS) and its predecessor groups. It is still reflected in the surviving products of those groups, including local libraries (such as PMATH) and local self-help sites for numerical mathematics software, such as the LINMath website. In addition, LC maintains math libraries in compiled (object) form, mostly from commercial vendors, on its machines. This document surveys those libraries and sites, compares their features, and offers links to current reference documentation.

For help, contact the LC Hotline at 925-422-4531 or via email (OCF: lc-hotline@llnl.gov, SCF: lc-hotline@pop.llnl.gov).

Math Libraries and Interactive Tools

Users often ask which mathematics libraries and interactive mathematical tools are "available" on which LC systems. The answer depends on what you regard as availability and on how much customization you need (or are willing to perform). Some mathematics libraries, mostly from commercial vendors, are preinstalled as compiled (object) code. The libraries sometimes overlap. Some routines are optimized and some are not; some are threaded and some are not; some support MPI and some do not; some are portable and some are not; some are single or double precision. Only your own computational needs can determine which of these competing libraries are most appropriate for your work.

Mathematics or numerical libraries are designed to be incorporated into user applications. They contain high-quality implementations of common tasks such as linear algebra solvers or fast Fourier transforms.

In addition to the relatively small set of preinstalled math libraries, there is a much larger set of downloadable source-code math software routines and packages (around 1400 in all) on both OCF (CZ and RZ) and SCF, at the LINMath website. This semi-interactive site offers four different collections (SLATEC, PMATH, MSSL, and mssl3) of non-proprietary software, organized by problem type. The software addresses a wide range of mathematical and statistical problem types, from simple (e.g., vector operations) to complex (e.g., differential equation solvers), and represents the result of efforts in the numerical math research community since the 1970s. LINMath also provides links to many other popular math software packages that are available elsewhere. The LINMath routines and packages also overlap somewhat with the commercial libraries (BLAS is an example), so in those cases you must decide which alternative best meets your specific needs.

Interactive mathematical tools are stand-alone applications that can be used for numerical analysis, data analysis, and display. These tools have both a GUI and a command-line interface.

The table below shows at a glance which major libraries and interactive mathematical tools reside on which LC machines. Each library or tool name is a link to more information about that library or tool.

Math Library Description Availability Documentation
ATLAS Automatically Tuned Linear Algebra Software Linux See the ATLAS website
BLAS Basic Linear Algebra Subroutines Linux
CORAL
See ATLAS, MKL, or ACML (Linux); ESSL (CORAL)
See the BLAS website
ESSL IBM Engineering and Scientific Subroutine Library CORAL /usr/tcetmp/packages/essl/essl-<version>/READMES/*.README
See the IBM's ESSL Guide and Reference
FFTW Fast Fourier Library Linux
CORAL
See the FFTW website
 
GSL GNU Scientific Library Linux See the GNU GSL website
LAPACK Dense linear algebra Linux
CORAL
See ATLAS, MKL, or ACML Linux; ESSL (CORAL)
See the LAPACK website
LIBM Standard C math library Linux See the LIBM man page
MKL Intel Math Kernel Library Linux See the documentation directory in /usr/tce/packages/mkl/mkl-<version>
See the Intel MKL website
MSSL/mssl3 Mathematics and Statistics Software Library is a collection of (mostly Fortran) routines in source code form   MSSL/mssl3 is available from the LINMath website as source code, which you can then move to any machine and compile.
ODEPACK ODEPACK is a collection of Fortran solvers for the initial value problem for ordinary differential equation systems.   See the ODEPACK website
PETSc Collection of routines for solving linear systems Linux
CORAL
See the PETSc website
PMATH Machine-independent portable math subroutine library   PMATH is available from the LINMath website as source code, which you can then move to any machine and compile.
ScaLAPACK Library of high-performance linear algebra routines for distributed-memory message-passing MIMD computers Linux
CORAL
See the Scalable Linear Algebra PACKage website
SLATEC Comprehensive software library with over 1400 general purpose mathematical and statistical routines written in Fortran 77   SLATEC is available from the LINMath website as source code, which you can then move to any machine and compile.
Interactive Math Tool Description Availability Documentation
Mathematica Symbolic mathematics tool Linux Within Mathematica; see also the Mathematica vendor website
MATLAB A high-level language and interactive environment for numerical computation, visualization, and programming Linux Within MATLAB; see also the MATLAB vendor website
Octave High-level language primarily intended for numerical computations Linux Within Octave; see also the GNU Octave website