Numerical & Mathematical Software

Cray XT-LibSci

From the "intro_libsci" manpage:

Cray XT-LibSci is a collection of single-processor and parallel numerical routines tuned for performance on Cray XT series systems. Cray XT-LibSci is included in the Cray XT programming environment. Call Cray XT-LibSci routines in your application instead of public domain or user-written versions.

Cray XT-LibSci also contains the Iterative Refinement Toolkit (IRT), which is a library of solvers and tools that provides solutions to linear systems using single-precision factorizations while preserving accuracy through mixed-precision iterative refinement.

Cray XT LibSci includes:

  • BLAS (Basic Linear Algebra Subroutines)
  • LAPACK (Linear Algebra routines)
  • ScaLAPACK (parallel Linear Algebra routines)
  • BLACS (Basic Linear Algebra Communication Subprograms)
  • IRT (Iterative Refinement Toolkit)
  • SuperLU (sparse solvers)

The Cray XT-LibSci can be loaded into the environment with "module load xt-libsci".

PETSc

PETSc-2.3.3a is available. This is a toolkit for solving partial differential equations including a comprehensive suite of sparse iterative solvers and preconditioners.

PETSc is available publicly from Argonne National Lab and Cray's implementation differs from the public version only in performance. Performance improvements will be made incrementally as optimized sparse kernels and tuned preconditioners are added. Since performance of iterative solvers in PETSc is highly application specific, optimizations can be targeted towards specific matrix classes. If you have specific sparse systems that you wish to regularly solve on the XT then please contact support.

PETSc is an active and supported product, and as such PETSc users should continue to seek advanced support from the PETSc team. A variety of documentation can be found at: http://www-unix.mcs.anl.gov/petsc/petsc-as/documentation/index.html

There are separate PETSc implementations for real data and complex data. Neither version is loaded as part of the default Programming Environment and so to use PETSc you must either

       module load petsc 
or 
       module load petsc-complex

In each case, the library corresponding to the choice of compiler dictated by your PrgEnv module will be used automatically.

Cray's PETSc library is configured to use the following external packages.
  • MUMPS
  • a parallel sparse direct linear system solver based on multifrontal algorithm
  • SuperLU
  • sequential version of SuperLU_DIST (not included with petsc-complex)
  • SuperLU_dist
  • a parallel sparse direct linear system solver (available in libsci)
  • ParMeTiS
  • a parallel multi-level graph/domain partitioning and matrix reordering package
  • HYPRE
  • a parallel preconditioning package (not included with petsc-complex)

These packages are provided alongside the PETSc library and are automatically linked through the PETSc modules.

ACML

The AMD Core Math Library (ACML) is a set of numerical routines tuned specifically for AMD64 platform processors (including Opteron(TM) and Athlon(TM) 64 ). The routines, which are available via both FORTRAN 77 and C interfaces, include:

  • BLAS - Basic Linear Algebra Subprograms (including Sparse Level 1 BLAS)
  • LAPACK - A comprehensive package of higher level linear algebra routines
  • FFT - a set of Fast Fourier Transform routines for real and complex data
  • RNG - a set of random number generators and statistical distribution functions.

The ACML library can be loaded into the environment with "module load acml"