FREELY AVAILABLE SOFTWARE FOR

LINEAR ALGEBRA ON THE WEB (July 2001)

 

I'm putting together information on freely available software for the solution of linear algebra problems. The interest is in software for high-performance computers that's available in source form on the web for solving problems in numerical linear algebra, specifically dense, sparse direct and iterative systems and sparse iterative eigenvalue problems. Please let me know about updates and corrections.

 

Additional pointers to software can be found at:

http://www.nhse.org/rib/repositories/nhse/catalog/#Numerical_Programs_and_Routines

A survey of Iterative Linear System Solver Packages can be found at:

http://www.netlib.org/utk/papers/iterative-survey/

Thanks, Jack

 

Software Package

Type

Language

Mode

Dense

Sparse Direct

Sparse Iterative

Sparse Eigenvalue

 

Real

Complex

f77

c

c++

Seq

Dist

 

SPD

Gen

SPD

Gen

Sym

Gen

ATLAS

X

X

X

X

 

X

 

X

 

 

 

 

 

 

BLAS

X

X

X

X

 

X

 

X

 

 

 

 

 

 

FLAME

X

X

X

X

 

X

 

X

 

 

 

 

 

 

MTL

X

 

 

 

X

X

 

X

 

 

 

 

 

 

NIST  S-BLAS

X

X

X

X

 

X

 

 

X

X

X

X

 

 

PSBLAS

X

X

X

X

 

X

M

 

X

X

X

X

 

 

SparseLib++

X

X

 

X

X

X

 

 

X

X

X

X

 

 

 

Real

Complex

f77

c

c++

Seq

Dist

 

SPD

Gen

SPD

Gen

Sym

Gen

LAPACK

X

X

X

X

 

X

 

X

 

 

 

 

 

 

PLAPACK

X

X

X

X

 

 

M

X

 

 

 

 

 

 

PRISM

X

 

X

 

 

X

M

X

 

 

 

 

 

 

ScaLAPACK

X

X

X

X

 

 

M/P

X

 

 

 

 

 

 

 

Real

Complex

f77

c

c++

Seq

Dist

 

SPD

Gen

SPD

Gen

Sym

Gen

HSL

X

X

X

 

 

X

 

 

X

X

 

 

 

 

MFACT

X

 

 

X

 

X

 

 

X

 

 

 

 

 

MP_SOLVE

X

X

 

X

 

 

M

 

 

X

 

 

 

 

MUMPS

X

 

X

 

 

X

M

 

X

X

 

 

 

 

PSPASES

X

 

X

X

 

 

M

 

X

 

 

 

 

 

SPARSE

X

X

 

X

 

X

 

 

X

X

 

 

 

 

SPARSEQR

X

 

 

X

X

X

 

 

X

X

 

 

 

 

SPOOLES

X

X

 

X

 

X

M

 

X

X

X

X

 

 

SuperLU

X

X

X

X

 

X

M

 

X

X

 

 

 

 

TAUCS

X

 

 

X

 

X

 

 

X

X

X

X

 

 

UMFPACK

X

X

X

 

 

X

 

 

X

X

 

 

 

 

Y12M

X

 

X

 

 

X

 

 

X

X

 

 

 

 

 

Real

Complex

f77

c

c++

Seq

Dist

 

SPD

Gen

SPD

Gen

Sym

Gen

AZTEC

X

 

 

X

 

X

M

 

 

 

X

X

 

 

BILUM

X

 

X

 

 

X

 

 

 

 

X

X

 

 

BlockSolve95

X

 

X

X

X

 

M

 

 

 

X

X

 

 

BPKIT

X

 

X

X

X

 

 

 

 

 

P

P

 

 

HYPRE

X

 

X

X

 

X

M

 

 

 

P

P

 

 

IML++

X

 

X

X

X

X

 

 

 

 

X

X

 

 

ISIS++

X

 

 

 

X

 

M

 

 

 

X

X

 

 

ITL

X

 

 

 

X

X

 

 

 

 

X

X

 

 

ITPACK

X

 

X

 

 

X

 

 

 

 

X

X

 

 

LASPack

X

 

 

X

 

X

 

 

 

 

X

X

 

 

LSQR

X

 

X

 

 

X

 

 

 

 

 

X

 

 

PARPRE

X

 

 

X

 

 

M

 

 

 

P

P

 

 

PCG

X

 

X

X

X

 

P

 

 

 

X

 

 

 

PETSc

X

X

X

X

 

X

M

 

 

 

X

X

 

 

P-SparsLIB

X

 

X

 

 

 

M

 

 

 

 

X

 

 

QMRPACK

X

X

X

 

 

X

 

 

 

 

X

X

X

X

SLAP

X

 

X

 

 

 

 

 

 

 

X

X

 

 

SPAI

X

 

 

X

 

X

M

 

 

 

X

X

 

 

SPLIB

X

 

X

 

 

X

 

 

 

 

X

X

 

 

SPOOLES

X

X

 

X

 

X

M

 

X

X

X

X

 

 

SYMMLQ

X

 

X

 

 

X

 

 

X

X

 

 

 

 

Templates

X

 

X

X

 

X

 

 

 

 

X

X

 

 

 

Real

Complex

f77

c

c++

Seq

Dist

 

SPD

Gen

SPD

Gen

Sym

Gen

LASO

X

 

X

 

 

X

 

 

 

 

 

 

X

 

P_ARPACK

X

X

X

X

X

X

M/P

 

 

 

 

 

X

X

PLANSO

X

 

X

 

 

X

M

 

 

 

 

 

X

 

TRLAN

X

 

X

 

 

X

M

 

 

 

 

 

X

 

 

Notes:

Type:

          R = Real arithmetic

          C = Complex arithmetic

     Language: f77, c, c++

     Mode:

          Seq = Sequential, vector and/or SMP/multithreaded versions

          DM = distributed memory message passing (M = MPI, P = PVM)

     Dense: Dense, triangular, banded, tridiagonal matrices

     Sparse: A sparse matrix representation is used to contain the data.

          Direct: A direct approach is used to factor and solve the system.

               SPD: The matrix is symmetric and positive definite

               Gen: The matrix is general

          Iter: An iterative method is used to solve the system.

               SPD: The matrix is symmetric and positive definite

               Gen: The matrix is general

               ^: contains sparse LU without pivoting, only sequential.

               P indicates preconditioners

     Sparse eigen: An iterative method is used to find some of the eigenvalues

          Sym: The matrix is symmetric (Hermitian in the complex case)

          Gen: The matrix is general