Difference between revisions of "Proposals:Sparse Linear Solvers"

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 || C/C++ (with Fortran and Matlab interfaces) || Unknown ||  Unknown ||  
| [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 || C  || Unknown || Unknown ||
| [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 ||  C || Unknown || Unknown ||  
| [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] ||  ||  ||  ||   || Unknown || Unknown ||  
| [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

TAUCS

SuperLU

Eigen

MUMPS

Boost Numeric Bindings

ARPACK++

ARPACK

lapack

clapack

PLASMA

OpenNL