| Freely Available Software for Linear Algebra (September 2011) | ||||||||||||||||
| 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 Direct | Sparse Iterative | Sparse Eigenvalue | |||||||
| Real | Complex | F77 | C | C++ | Seq | Dist | SPD | Gen | SPD | Gen | Sym | Gen | ||||
| ATLAS | BSD like | yes | X | X | X | X | X | X | ||||||||
| BLAS | PD | yes | X | X | X | X | X | X | ||||||||
| Blitz++ | GPL | yes | X | X | X | X | X | |||||||||
| FLAME | LGPL | yes | X | X | X | X | X | X | ||||||||
| LINALG * | ? | |||||||||||||||
| MTL | OSI | yes | X | X | X | X | ||||||||||
| NEWMAT | Own | yes | X | X | X | X | ||||||||||
| NIST S-BLAS | ? | yes | X | X | X | X | X | |||||||||
| Scotch | CeCILL-C | yes | X | X | X | M | X | X | X | X | ||||||
| SparseLib++ | ? | yes | X | X | X | X | X | |||||||||
| Trilinos/Epetra | BSD | yes | X | X | X | X | X | M | X | |||||||
| Trilinos/Tpetra | BSD | yes | X | X | X | X | M | X | ||||||||
| Trilinos/Kokkos | BSD | yes | X | X | X | X | X | |||||||||
| Trilinos/Teuchos | BSD | yes | X | X | X | X | M | X | ||||||||
| uBLAS | Own | yes | X | X | X | X | X | X | ||||||||
| DIRECT SOLVERS | License | Support | Type | Language | Mode | Dense | Sparse Direct | Sparse Iterative | Sparse Eigenvalue | |||||||
| Real | Complex | F77 | C | C++ | Seq | Dist | SPD | Gen | SPD | Gen | Sym | Gen | ||||
| Eigen | LGPL | yes | X | X | X | X | X | X | X | |||||||
| Elemental | BSD | yes | X | X | X | M | X | |||||||||
| FLAME | LGPL | yes | X | X | X | X | X | X | ||||||||
| FLENS | BSD | yes | X | X | X | X | X | |||||||||
| LAPACK | BSD | yes | X | X | X | X | X | X | ||||||||
| LAPACK95 | BSD | yes | X | X | F95 | X | X | |||||||||
| MAGMA | BSD | yes | X | X | X | X | X | |||||||||
| NAPACK | BSD | yes | X | X | X | X | X | X | ||||||||
| PLAPACK | ? | no | X | X | X | X | M | X | ||||||||
| PLASMA | BSD | yes | X | X | X | X | X | X | ||||||||
| PRISM | ? | no | X | X | X | M | X | |||||||||
| rejtrix | by-nc-sa | yes | X | X | X | X | P | P | ||||||||
| ScaLAPACK | BSD | yes | X | X | X | X | M/P | X | ||||||||
| Trilinos/Pliris | BSD | yes | X | X | X | X | M | X | ||||||||
| ViennaCL | MIT | yes | X | X | X | X | X | X | ||||||||
| SPARSE DIRECT SOLVERS | License | Support | Type | Language | Mode | Dense | Sparse Direct | Sparse Iterative | Sparse Eigenvalue | |||||||
| Real | Complex | F77 | C | C++ | Seq | Dist | SPD | Gen | SPD | Gen | Sym | Gen | ||||
| CHOLMOD | LGPL | yes | X | X | X | X | X | |||||||||
| DSCPACK | ? | yes | X | X | X | M | X | |||||||||
| HSL | Own | yes | X | X | X | X | X | X | X | X | X | X | ||||
| KKTDirect | PD | yes | X | X | X | X | LDLT | |||||||||
| MUMPS | PD | yes | X | X | X | X | X | M | X | X | ||||||
| PSPASES | Own | yes | X | X | X | M | X | |||||||||
| Quern | PD | yes | X | X | X | X | X | X | ||||||||
| SPARSE | Own | ? | X | X | X | X | X | X | ||||||||
| SPOOLES | PD | ? | X | X | X | X | M | X | X | |||||||
| SuperLU | Own | yes | X | X | X | X | X | M | X | |||||||
| TAUCS | Own | yes | X | X | X | X | X | X | X | X | ||||||
| Trilinos/Amesos | LGPL | yes | X | X | X | X | M | X | X | |||||||
| Trilinos/Amesos2 | BSD | yes | X | X | X | X | M | X | X | |||||||
| UMFPACK | GPL | yes | X | X | X | X | X | |||||||||
| Y12M | ? | yes | X | X | X | X | X | |||||||||
| PRECONDITIONERS | License | Support | Type | Language | Mode | Dense | Sparse Direct | Sparse Iterative | Sparse Eigenvalue | |||||||
| Real | Complex | F77 | C | C++ | Seq | Dist | SPD | Gen | SPD | Gen | Sym | Gen | ||||
| BPKIT | LGPL | yes | X | X | X | X | X | M | ||||||||
| MLD2P4 | BSD | yes | X | X | F90 | X | M | X | X | |||||||
| MSPAI | LGPL | yes | X | X | X | X | M | |||||||||
| SPAI | ? | yes | X | X | X | M | ||||||||||
| Trilinos/IFPACK | LGPL | yes | X | X | X | M | ||||||||||
| Trilinos/IFPACK2 | LGPL | yes | X | X | X | X | M | |||||||||
| Trilinos/ML | LGPL | yes | X | X | X | X | M | |||||||||
| Trilinos/Teko | BSD | yes | X | X | X | X | M | |||||||||
| SPARSE ITERATIVE SOLVERS | License | Support | Type | Language | Mode | Dense | Sparse Direct | Sparse Iterative | Sparse Eigenvalue | |||||||
| Real | Complex | F77 | C | C++ | Seq | Dist | SPD | Gen | SPD | Gen | Sym | Gen | ||||
| AGMG | GPL | ? | X | X | F90 | X | M | X | X | |||||||
| BILUM | ? | no | X | X | X | X | X | |||||||||
| BlockSolve95 | ? | ? | X | X | X | X | M | X | X | |||||||
| CERFACS | ? | yes | X | X | X | X | X | X | ||||||||
| DUNE / ISTL | LGPL | yes | X | X | X | X | M | X | X | |||||||
| GMM++ | LGPL | yes | X | X | X | X | X | X | X | X | ||||||
| HIPS | CeCILL-C | yes | X | X | X | X | X | X | M | X | X | |||||
| HYPRE | LGPL | yes | X | X | X | X | M | P | P | P | ||||||
| IML++ | ? | ? | X | X | X | X | X | X | X | |||||||
| ITL | Own | yes | X | X | X | X | X | |||||||||
| ITPACK | PD | ? | X | X | X | X | X | |||||||||
| ITSOL | GPL | yes | X | X | X | X | ||||||||||
| LASPack | Own | ? | X | X | X | X | X | |||||||||
| Lis | BSD | yes | X | X | X | X | M | P | P | P | P | |||||
| LSQR | CPL | yes | X | X | X | X | X | |||||||||
| pARMS | LGPL | yes | X | X | X | X | M | X | X | |||||||
| PETSc | Own | yes | X | X | X | X | X | M | X | X | ||||||
| PIM | Own | yes | X | X | X | X | M | X | X | |||||||
| PSBLAS | BSD | yes | X | X | F90 | X | M | X | X | |||||||
| QMRPACK (tar.gz) | ? | ? | X | X | X | X | X | X | X | X | ||||||
| SLAP | PD | ? | X | X | X | X | ||||||||||
| SPARSKIT | LGPL | yes | X | X | X | X | ||||||||||
| SPLIB (tar.gz) | ? | ? | X | X | X | X | X | |||||||||
| SYMMLQ | CPL | yes | X | X | X | X | X | |||||||||
| Trilinos/AztecOO | BSD | yes | X | X | X | X | X | M | X | X | ||||||
| Trilinos/Belos | BSD | yes | X | X | X | X | M | X | X | |||||||
| Trilinos/Komplex | BSD | yes | X | X | X | X | M | X | X | |||||||
| Templates | BSD | yes | X | X | X | X | X | X | ||||||||
| ViennaCL | MIT | yes | X | X | X | X | X | X | ||||||||
| SPARSE EIGENVALUE SOLVERS | License | Support | Type | Language | Mode | Dense | Sparse Direct | Sparse Iterative | Sparse Eigenvalue | |||||||
| Real | Complex | F77 | C | C++ | Seq | Dist | SPD | Gen | SPD | Gen | Sym | Gen | ||||
| BLOPEX | LGPL | yes | X | X | X | X | M | X | ||||||||
| FEAST | BSD | yes | X | X | X | X | X | X | ||||||||
| LASO | PD | ? | X | X | X | X | ||||||||||
| PARPACK | ? | yes | X | X | X | X | X | X | M/P | X | X | |||||
| PRIMME | LGPL | yes | X | X | X | X | M/P | X | ||||||||
| PROPACK | ? | yes | X | X | X | SVD | ||||||||||
| SLEPc | LGPL | yes | X | X | X | X | X | M | X | X | ||||||
| Trilinos/Anasazi | LGPL | yes | X | X | X | X | M | X | X | |||||||
| TRLan | Own | yes | X | X | F90 | X | X | M | X | |||||||
| LINALG *: This is a collection of software that is available but too varied to describe. | ||||||||||||||||
| 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: | ||||||||||||||||
| Seq = Sequential, vector and/or SMP/multithreaded versions | ||||||||||||||||
| Dist = 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 | ||||||||||||||||
| 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 | ||||||||||||||||
| 10/8/2011 1:39:51 AM | ||||||||||||||||