Proposals:Sparse Linear Solvers: Difference between revisions
From KitwarePublic
Jump to navigationJump to search
Line 21: | Line 21: | ||
{| border="1" | {| border="1" | ||
|- bgcolor="#abcdef" | |- bgcolor="#abcdef" | ||
! Name !! License !! Size !! Support Sparse !! Language !! Coverage || Valgrind || CMakeified | ! Name !! License !! Size !! Support Sparse !! Support Dense !! Language !! Coverage || Valgrind || CMakeified | ||
|- | |- | ||
| [http://www.cise.ufl.edu/research/sparse/SuiteSparse SuiteSparse] || LGPL / GPL || || Yes | | [http://www.cise.ufl.edu/research/sparse/SuiteSparse SuiteSparse] || LGPL / GPL || || Yes || || C/C++ (with Fortran and Matlab interfaces) || Unknown || Unknown || | ||
|- | |- | ||
| [http://www.tau.ac.il/~stoledo/taucs/ TAUCS] [http://code.google.com/p/taucs/ google code page] || MIT || || Yes | | [http://www.tau.ac.il/~stoledo/taucs/ TAUCS] [http://code.google.com/p/taucs/ google code page] || MIT || || Yes || || C || Unknown || Unknown || | ||
|- | |- | ||
| [http://crd.lbl.gov/~xiaoye/SuperLU/ SuperLU] || BSD || || Yes | | [http://crd.lbl.gov/~xiaoye/SuperLU/ SuperLU] || BSD || || Yes || || C || Unknown || Unknown || | ||
|- | |- | ||
| [http://eigen.tuxfamily.org/index.php?title=Main_Page Eigen] || LGPL v3 (headers only) || 3.8 Mb || Yes || C++ || Unknown || Unknown || Yes | | [http://eigen.tuxfamily.org/index.php?title=Main_Page Eigen] || LGPL v3 (headers only) || 3.8 Mb || Yes || Yes || C++ || Unknown || Unknown || Yes | ||
|- | |- | ||
| [http://mathema.tician.de/software/boost-bindings Boost Numeric Bindings] || || || || | | [http://mathema.tician.de/software/boost-bindings Boost Numeric Bindings] || || || || Yes || C++ || Unknown || Unknown || | ||
|- | |- | ||
| [http://www.ime.unicamp.br/~chico/arpack++/ ARPACK++] || || Templates || Yes || C++ || Unknown || No || | | [http://www.ime.unicamp.br/~chico/arpack++/ ARPACK++] || || Templates || Yes || || C++ || Unknown || No || | ||
|- | |- | ||
| [http://www.caam.rice.edu/software/ARPACK/ ARPACK] || New BSD || 1.5 Mb || Yes || FORTRAN || Unknown || No || | | [http://www.caam.rice.edu/software/ARPACK/ ARPACK] || New BSD || 1.5 Mb || Yes || || FORTRAN || Unknown || No || | ||
|- | |- | ||
| [http://graal.ens-lyon.fr/MUMPS/ MUMPS] || Public Domain || 11 Mb || Yes || FORTRAN 90 || Unknown || Unknown || | | [http://graal.ens-lyon.fr/MUMPS/ MUMPS] || Public Domain || 11 Mb || Yes || || FORTRAN 90 || Unknown || Unknown || | ||
|- | |- | ||
| [http://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=2&t=1746 lapack] || BSD || 86 Mb || No || Fortran || ?? || Unknown || Yes | | [http://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=2&t=1746 lapack] || BSD || 86 Mb || No || Yes || Fortran || ?? || Unknown || Yes | ||
|- | |- | ||
| [http://www.netlib.org/clapack/clapack-3.2.1-CMAKE.tgz clapack] || BSD || 22 Mb || No || C || 80% || Unknown || Yes | | [http://www.netlib.org/clapack/clapack-3.2.1-CMAKE.tgz clapack] || BSD || 22 Mb || No || Yes || C || 80% || Unknown || Yes | ||
|- | |- | ||
| [http://icl.cs.utk.edu/plasma/index.html PLASMA] || BSD || 13 Mb || No || C + FORTRAN || || || Yes | | [http://icl.cs.utk.edu/plasma/index.html PLASMA] || BSD || 13 Mb || No || Yes || C + FORTRAN || || || Yes | ||
|- | |- | ||
| [http://alice.loria.fr/index.php/software/4-library/23-opennl.html OpenNL] || ?, BSD || 2.8 Mb || Yes || C, C++, CUDA || Unknown || Unknown || Yes | | [http://alice.loria.fr/index.php/software/4-library/23-opennl.html OpenNL] || ?, BSD || 2.8 Mb || Yes || || C, C++, CUDA || Unknown || Unknown || Yes | ||
|- | |- | ||
|} | |} |
Revision as of 09:24, 2 March 2010
The Problem
ITK requires functionalities for solving large sparse linear systems.
The current solution obtained though VXL must be replaced because it relies internally on code whose Copyright is held by ACM, and is subject to a license that precludes commercial use.
Previous Review
Tom Vercauteren previously gathered the following list of options.
ITK_Release_4.0#3rd_Party_Libraries
Options
Comparative Table
Name | License | Size | Support Sparse | Support Dense | Language | Coverage | Valgrind | CMakeified |
---|---|---|---|---|---|---|---|---|
SuiteSparse | LGPL / GPL | Yes | C/C++ (with Fortran and Matlab interfaces) | Unknown | Unknown | |||
TAUCS google code page | MIT | Yes | C | Unknown | Unknown | |||
SuperLU | BSD | Yes | C | Unknown | Unknown | |||
Eigen | LGPL v3 (headers only) | 3.8 Mb | Yes | Yes | C++ | Unknown | Unknown | Yes |
Boost Numeric Bindings | Yes | C++ | Unknown | Unknown | ||||
ARPACK++ | Templates | Yes | C++ | Unknown | No | |||
ARPACK | New BSD | 1.5 Mb | Yes | FORTRAN | Unknown | No | ||
MUMPS | Public Domain | 11 Mb | Yes | FORTRAN 90 | Unknown | Unknown | ||
lapack | BSD | 86 Mb | No | Yes | Fortran | ?? | Unknown | Yes |
clapack | BSD | 22 Mb | No | Yes | C | 80% | Unknown | Yes |
PLASMA | BSD | 13 Mb | No | Yes | C + FORTRAN | Yes | ||
OpenNL | ?, BSD | 2.8 Mb | Yes | C, C++, CUDA | Unknown | Unknown | Yes |
SuiteSparse
- License: LGPL / GPL (depending on the submodules, e.g. CSparse and SuiteSparseQR)
- Home: http://www.cise.ufl.edu/research/sparse/SuiteSparse
TAUCS
- License: MIT
- Home: http://code.google.com/p/taucs/
SuperLU
- License: BSD
- Home: http://crd.lbl.gov/~xiaoye/SuperLU/
Eigen
- License: LGPL v3 headers only (The authors claim it is compatible with BSD software)
- Home: http://eigen.tuxfamily.org/index.php?title=Main_Page
- Cdash dashboard here
- Support for both sparse and dense matrices and algorithms
MUMPS
- License:
- http://graal.ens-lyon.fr/MUMPS/
- Requires
- BLAS
Boost Numeric Bindings
- License: seems to be BSD (but links to MUMPS, UMFPack, so better check with them directly)
- http://mathema.tician.de/software/boost-bindings
ARPACK++
- C++ Template API for sparse matrix containers and API to ARPACK FORTRAN library solvers
- License: ??
- http://www.ime.unicamp.br/~chico/arpack++/
ARPACK
- to solve large scale eigenvalue problems
- License: New BSD
- http://www.caam.rice.edu/software/ARPACK/
lapack
- http://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=2&t=1746
- Source Code
- Dashboard: http://my.cdash.org/index.php?project=LAPACK
- Main maintainer Site:
- Innovative Computing Laboratory
- University of Tennessee from Denver, Colorado
clapack
- Dashboard: http://my.cdash.org/index.php?project=CLAPACK
- License:
- Source code release: http://www.netlib.org/clapack/clapack-3.2.1-CMAKE.tgz
- Home page: https://icl.eecs.utk.edu/
- Repository: https://icl.eecs.utk.edu/svn/lapack-dev/clapack/trunk
- Closed to the public ??
- The code is generated from the FORTRAN version of lapack. The generation process is not under source control.
- Main maintainer Site:
- Innovative Computing Laboratory
- University of Tennessee from Denver, Colorado
PLASMA
- Home Page: http://icl.cs.utk.edu/plasma/index.html
- License: BSD
OpenNL
- Home Page: http://alice.loria.fr/index.php/software/4-library/23-opennl.html
- License: need to be clarified, VTK like.