Freely Available Software for Linear Algebra (May 2013) | |||||||||||||||||||

Here is a list of freely available software for the solution of linear algebra problems. The interest is in software for high-performance computers thatÕs available in Òopen 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 and | |||||||||||||||||||

Mark | |||||||||||||||||||

SUPPORT ROUTINES | License | Support | Type | Language | Mode | Dense | Sparse | Last release date | |||||||||||

Real | Complex | F77 | C | C++ | Shared | GPU | Dist | ||||||||||||

Armadillo | Mozilla | yes | X | X | X | X | X | 2013-04-19 | |||||||||||

ATLAS | BSD like | yes | X | X | X | X | X | X | 2013-01-08 | ||||||||||

BLAS | PD | yes | X | X | X | X | X | X | 2011-04-19 | ||||||||||

BLIS | BSD | yes | X | X | X | X | X | X | 2013-04-13 | ||||||||||

Blitz++ | LGBL, etc. | yes | X | X | X | X | X | 2012-07-04 | |||||||||||

librsb | LGPL | yes | X | X | X | X | X | X | X | 2013-04-07 | |||||||||

LINALG * | ? | n/a | |||||||||||||||||

MR3-SMP | BSD | yes | X | X | X | X | X | X | 2013-02-28 | ||||||||||

MTL | Own | yes | X | X | X | X | 2012-10-17 | ||||||||||||

NEWMAT | Own | yes | X | X | X | X | 2008-11-20 | ||||||||||||

NIST Sparse BLAS | PD | yes | X | X | X | X | X | X | 2009-04-27 | ||||||||||

OpenBLAS | BSD | yes | X | X | X | X | X | X | 2013-03-02 | ||||||||||

PMRRR | BSD | yes | X | X | X | X | X | X | 2011-07-26 | ||||||||||

(p)OSKI | BSD | yes | X | X | X | X | X | X | X | 2012-04-27 | |||||||||

PSBLAS | BSD | yes | X | X | F90 | X | M | X | 2012-06-27 | ||||||||||

Scotch | CeCILL-C | yes | X | X | X | M | X | 2012-12-02 | |||||||||||

SparseLib++ | PD | yes | X | X | X | X | X | X | 2008-10-30 | ||||||||||

Trilinos/Epetra | BSD | yes | X | X | X | X | X | M | X | 2013-04-17 | |||||||||

Trilinos/Tpetra | BSD | yes | X | X | X | X | M | X | 2013-04-17 | ||||||||||

Trilinos/Kokkos | BSD | yes | X | X | X | X | X | 2013-04-17 | |||||||||||

Trilinos/Teuchos | BSD | yes | X | X | X | X | M | X | 2013-04-17 | ||||||||||

uBLAS | Boost | yes | X | X | X | X | X | X | 2012-11-05 | ||||||||||

LINALG *: This is a collection of software that is available but too varied to describe. | |||||||||||||||||||

DIRECT SOLVERS | License | Support | Type | Language | Mode | Dense | Sparse Direct | Sparse Iterative | Sparse Eigenvalue | Last release date | |||||||||

Real | Complex | F77 | C | C++ | Shared | GPU | Dist | SPD | Gen | SPD | Gen | Sym | Gen | ||||||

Eigen | Mozilla | yes | X | X | X | X | X | X | X | X | X | 2013-04-16 | |||||||

Elemental | BSD | yes | X | X | X | M | X | 2013-03-27 | |||||||||||

FLAME | LGPL | yes | X | X | X | X | X | X | ? | ||||||||||

FLENS | BSD | yes | X | X | X | X | X | 2012-10-01 | |||||||||||

LAPACK | BSD | yes | X | X | X | X | X | X | 2012-09-25 | ||||||||||

LAPACK95 | BSD | yes | X | X | F95 | X | X | 2000-11-30 | |||||||||||

MAGMA | BSD | yes | X | X | X | X | X | C/O/X | 2012-11-14 | ||||||||||

NAPACK | BSD | yes | X | X | X | X | X | X | ? | ||||||||||

PLAPACK | ? | no | X | X | X | X | M | X | 2007-06-12 | ||||||||||

PLASMA | BSD | yes | X | X | X | X | X | X | 2012-11-14 | ||||||||||

PRISM | ? | no | X | X | X | M | X | ? | |||||||||||

rejtrix | by-nc-sa | yes | X | X | X | X | P | P | 2012-01-01 | ||||||||||

ScaLAPACK | BSD | yes | X | X | X | X | M/P | X | 2012-05-01 | ||||||||||

Trilinos/Pliris | BSD | yes | X | X | X | X | M | X | 2013-04-17 | ||||||||||

ViennaCL | MIT | yes | X | X | X | C/O/X | X | X | X | 2013-02-22 | |||||||||

SPARSE DIRECT SOLVERS | License | Support | Type | Language | Mode | Dense | Sparse Direct | Sparse Iterative | Sparse Eigenvalue | Last release date | |||||||||

Real | Complex | F77 | C | C++ | Shared | GPU | Dist | SPD | Gen | SPD | Gen | Sym | Gen | ||||||

CHOLMOD | GPL | yes | X | X | X | X | C | X | 2013-04-15 | ||||||||||

DSCPACK | PD | yes | X | X | X | M | X | ? | |||||||||||

KKTDirect | PD | yes | X | X | X | X | LDL^{T} |
2010-04-21 | |||||||||||

MUMPS | PD | yes | X | X | X | X | X | M | X | X | 2011-05-01 | ||||||||

PaStiX | CeCILL-C | yes | X | X | X | X | X | X | M | X | X | X | X | 2012-11-22 | |||||

PSPASES | Own | yes | X | X | X | M | X | 1999-05-09 | |||||||||||

Quern | PD | yes | X | X | X | X | X | X | 2009-02-04 | ||||||||||

SPARSE | Own | ? | X | X | X | X | X | X | 1988-04-01 | ||||||||||

SPOOLES | PD | ? | X | X | X | X | M | X | X | 1999-01-26 | |||||||||

SuperLU | Own | yes | X | X | X | X | X | M | X | 2011-10-27 | |||||||||

TAUCS | Own | yes | X | X | X | X | X | X | X | X | 2003-09-04 | ||||||||

Trilinos/Amesos | LGPL | yes | X | X | X | X | M | X | X | 2013-04-17 | |||||||||

Trilinos/Amesos2 | BSD | yes | X | X | X | X | M | X | X | 2013-04-17 | |||||||||

UMFPACK | GPL | yes | X | X | X | X | X | 2012-07-08 | |||||||||||

Y12M | ? | yes | X | X | X | X | X | ? | |||||||||||

PRECONDITIONERS | License | Support | Type | Language | Mode | Dense | Sparse Direct | Sparse Iterative | Sparse Eigenvalue | Last release date | |||||||||

Real | Complex | F77 | C | C++ | Shared | GPU | Dist | SPD | Gen | SPD | Gen | Sym | Gen | ||||||

BPKIT | LGPL | yes | X | X | X | X | X | M | 2007-03-17 | ||||||||||

MLD2P4 | BSD | yes | X | X | F90 | X | M | 2011-03-10 | |||||||||||

MSPAI | LGPL | yes | X | X | X | X | M | 2009-09-17 | |||||||||||

Trilinos/IFPACK | LGPL | yes | X | X | X | M | 2013-04-17 | ||||||||||||

Trilinos/IFPACK2 | LGPL | yes | X | X | X | X | M | 2013-04-17 | |||||||||||

Trilinos/ML | LGPL | yes | X | X | X | X | M | 2013-04-17 | |||||||||||

Trilinos/Teko | BSD | yes | X | X | X | X | M | 2013-04-17 | |||||||||||

SPARSE ITERATIVE SOLVERS | License | Support | Type | Language | Mode | Dense | Sparse Direct | Sparse Iterative | Sparse Eigenvalue | Last release date | |||||||||

Real | Complex | F77 | C | C++ | Shared | GPU | Dist | SPD | Gen | SPD | Gen | Sym | Gen | ||||||

BILUM | ? | no | X | X | X | X | X | 1998-03-01 | |||||||||||

BlockSolve95 | ? | ? | X | X | X | X | M | X | X | 1997-07-08 | |||||||||

CERFACS | ? | yes | X | X | X | X | X | X | 2007-07-01 | ||||||||||

DUNE / ISTL | LGPL | yes | X | X | X | X | M | X | X | 2013-02-26 | |||||||||

GMM++ | LGPL | yes | X | X | X | X | X | X | X | X | 2012-08-01 | ||||||||

HIPS | CeCILL-C | yes | X | X | X | X | X | X | M | X | X | 2010-10-13 | |||||||

HYPRE | LGPL | yes | X | X | X | X | M | P | P | P | 2012-10-30 | ||||||||

IML++ | PD | ? | X | X | X | X | X | 1995-01-05 | |||||||||||

ITL | Own | yes | X | X | X | X | X | 2001-10-26 | |||||||||||

ITPACK | PD | ? | X | X | X | X | X | 1989-05-01 | |||||||||||

ITSOL | GPL | yes | X | X | X | X | 2012-10-25 | ||||||||||||

LASPack (see netlib) | Own | ? | X | X | X | X | X | 1996-01-17 | |||||||||||

Lis | BSD | yes | X | X | X | X | M | P | P | P | P | 2013-04-19 | |||||||

PARALUTION | GPL | yes | X | X | X | C/O | X | X | 2013-04-06 | ||||||||||

pARMS | LGPL | yes | X | X | X | X | M | X | X | 2011-01-14 | |||||||||

PETSc | Own | yes | X | X | X | X | X | M | P | P | 2012-06-05 | ||||||||

PIM | Own | yes | X | X | X | X | M | X | X | 2003-06-20 | |||||||||

QMRPACK (tar.gz) | ? | ? | X | X | X | X | X | X | X | X | 1996-04-15 | ||||||||

SLAP | PD | ? | X | X | X | X | 1998-07-21 | ||||||||||||

SOL | CPL or BSD | yes | X | X | X | X | X | X | 2012-10-26 | ||||||||||

SPARSKIT | LGPL | yes | X | X | X | X | 2009-11-18 | ||||||||||||

SPLIB (tar.gz) | ? | ? | X | X | X | X | X | 1999-04-01 | |||||||||||

Trilinos/AztecOO | BSD | yes | X | X | X | X | X | M | X | X | 2013-04-17 | ||||||||

Trilinos/Belos | BSD | yes | X | X | X | X | M | X | X | 2013-04-17 | |||||||||

Trilinos/Komplex | BSD | yes | X | X | X | X | M | X | X | 2013-04-17 | |||||||||

Templates | BSD | yes | X | X | X | X | X | X | 1998-07-21 | ||||||||||

SPARSE EIGENVALUE SOLVERS | License | Support | Type | Language | Mode | Dense | Sparse Direct | Sparse Iterative | Sparse Eigenvalue | Last release date | |||||||||

Real | Complex | F77 | C | C++ | Shared | GPU | Dist | SPD | Gen | SPD | Gen | Sym | Gen | ||||||

ARPACK | BSD | yes | X | X | X | X | X | X | M/P | X | X | 2002-09-18 | |||||||

BLOPEX | LGPL | yes | X | X | X | X | M | P | 2011-08-25 | ||||||||||

FEAST | BSD | yes | X | X | X | X | X | X | 2013-02-20 | ||||||||||

FILTLAN | LGPL | yes | X | X | X | X | 2012-05-07 | ||||||||||||

LASO | PD | ? | X | X | X | X | 1983-06-01 | ||||||||||||

PRIMME | LGPL | yes | X | X | X | X | M/P | X | 2006-10-18 | ||||||||||

PROPACK | BSD | yes | X | X | X | SVD | 2005-04-20 | ||||||||||||

SLEPc | LGPL | yes | X | X | X | X | X | M | X | X | 2012-10-03 | ||||||||

Trilinos/Anasazi | LGPL | yes | X | X | X | X | M | P | P | 2013-04-17 | |||||||||

TRLan | Own | yes | X | X | F90 | X | X | M | X | 2010-10-10 | |||||||||

Free for academic use only (not open source) | License | Support | Type | Language | Mode | Dense | Sparse Direct | Sparse Iterative | Sparse Eigenvalue | Last release date | |||||||||

AGMG | Own | yes | X | X | F90 | X | M | X | X | 2012-10-01 | |||||||||

HSL | Own | yes | X | X | X | X | X | M | X | X | X | X | X | X | 2013-04-15 | ||||

No longer available | License | Support | Type | Language | Mode | Dense | Sparse Direct | Sparse Iterative | Sparse Eigenvalue | Last release date | |||||||||

SPAI | ? | yes | X | X | X | M | --- | ||||||||||||

Notes: | |||||||||||||||||||

Type: | |||||||||||||||||||

Real = Real arithmetic | |||||||||||||||||||

Complex = Complex arithmetic | |||||||||||||||||||

Support: Contact information for where you can send questions and bug reports. | |||||||||||||||||||

Language: F77 (Fortran 95), C, C++ | |||||||||||||||||||

Mode: | |||||||||||||||||||

Shared = shared memory, sequential, vector or SMP/multithreaded versions | |||||||||||||||||||

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

GPU/Accel. = GPU or Accelerator (C=CUDA, O=OpenCL, X=Intel Xeon Phi) | |||||||||||||||||||

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 | |||||||||||||||||||

Iterative: An iterative method is used to solve the system. | |||||||||||||||||||

SPD: The matrix is symmetric and positive definite | |||||||||||||||||||

Gen: The matrix is general | |||||||||||||||||||

P indicates preconditioners | |||||||||||||||||||

Sparse eigenvalue: 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 | |||||||||||||||||||

11/14/2013 4:29:30 PM | |||||||||||||||||||