MUMPS

Description

MUMPS (MUltifrontal Massively Parallel Solver) is a package for solving systems of linear equations of the form Ax = b, where A is a square sparse matrix that can be unsymmetric, symmetric positive definite, or general symmetric. MUMPS uses a multifrontal technique that is a direct method based on either the LU or the LDLT factorization of the matrix. MUMPS exploits both parallelism arising from sparsity in the matrix A and from dense factorizations kernels.

The main features of the MUMPS package include the solution of the transposed system, input of the matrix in assembled (distributed or centralized) or elemental format, error analysis, iterative refinement, scaling of the original matrix, and return of a Schur complement matrix. MUMPS offers several built-in ordering algorithms, a tight interface to some external ordering packages such as METIS (strongly recommended) and PORD, and the possibility for the user to input a given ordering. Finally, MUMPS is available in various arithmetics (real or complex, single or double precision).

The software is written in Fortran 90, although a C interface is available. The parallel version of MUMPS requires MPI for message passing and makes use of the BLAS, BLACS, and ScaLAPACK [10] libraries. The sequential version relies on only BLAS.

Use

Jaguar
On Jaguar, the MUMPS library is a module. See the modules page for more information on modules. However, even though MUMPS is a module, at this time the compilers don’t support setting the default library and include search paths. Therefore, you currently have to provide this information at compiling time via an environment variable.
 
C Use
module load mumps/4.3
cc -o example example.c ${MUMPS_PATH} -lzmumps -lpord
 
Phoenix
On Phoenix, the MUMPS library is a module. See the modules page for more information on modules.
 
C Use
module load mumps/4.3
cc -o example example.c -lzmumps -lpord