[Insight-users] [Insight-developers] Replacing Sparse Matrix Linear Solver : due to Licensing issues
Tom Vercauteren
tom.vercauteren at gmail.com
Mon Feb 1 02:36:18 EST 2010
Hi Luis,
Some time ago I started listing potential linear algebra alternatives
on the wiki for ITK 4:
http://www.itk.org/Wiki/ITK_Release_4.0#3rd_Party_Libraries
The best option I found is definitely eigen:
http://eigen.tuxfamily.org/index.php?title=Main_Page
I has almost everything we need:
- Support for both dense and sparse matrix algorithms (including least squares)
- Faster than mkl in some cases
- Actively maintained c++ code written from scratch with no fortran
dependency ;)
- Include wrappers for third party libraries such as superlu mentioned by Arnaud
- compatible with BSD
http://eigen.tuxfamily.org/index.php?title=Licensing_FAQ#Using_Eigen_in_BSD-licensed_software
- Using cmake and ctest for unit testing
- Used by some large projects (e.g. official linear algebra package for kde)
- etc.
It might be a good time to start experiencing with it.
Regards,
Tom
On Sun, Jan 31, 2010 at 22:28, Arnaud Gelas
<arnaud_gelas at hms.harvard.edu> wrote:
> Hi Luis,
> A short term solution would be to replace (if that possible) the code for
> solving sparse linear system with existing sparse direct solution from VNL
> (vnl_sparse_lu). Note that the mesh parameterization can easily change to
> use vnl_sparse_lu by default.
> Is vnl_sparse_lu ok (in terms of license)?
> Can Code/Numerics/FEM/itkFEMLinearSystemWrapperVNL.h use vnl_sparse_lu
> instead?
> A longer term solution would be to start using specialized sparse libraries
> (which are more efficient than vnl for these problems). Here, I cite some of
> them
> * SuiteSparse (LGPL): the most complete (and as far as I know the most
> efficient) solution http://www.cise.ufl.edu/research/sparse/SuiteSparse/
> * TAUCS (MIT License): sparse direct solver http://code.google.com/p/taucs/
> * SuperLU (License): LU decomposition http://crd.lbl.gov/~xiaoye/SuperLU/
> Arnaud
> On Jan 31, 2010, at 2:50 PM, Luis Ibanez wrote:
>
> The "toms" incident seems to be behind us now.
> The code has been removed from the VXL version
> that is carried by ITK.
>
>
> However, as a secondary effect,
>
> Bill found out that the "lsqr" libraries inside VXL are
> also copyrighted by ACM and therefore subject to
> their non-commercial license.
>
>
> Therefore, they must go.
>
>
> As opposed to "toms", however, this code is actually
> used in ITK.
>
> The lsqr code from the directory:
>
> Utilities/vxl/v3p/netlib/linalg/lsqr.c
>
> is used by VXL in
>
> Utilities/vxl/core/vnl/algo/vnl_lsqr.h
>
> that in turn is used by ITK in:
>
> Code/Numerics/FEM/itkFEMLinearSystemWrapperVNL.h
> Testing/Code/Review/itkQuadEdgeMeshLinearParameterizationTest.cxx
>
> After a (non exhaustive) Google search for
> open source implementations of sparse matrix
> linear solvers with licenses compatible with
> the BSD license.
>
> We end up with :
>
> http://sourceforge.net/projects/sparse/files/
> http://sparse.sourceforge.net/index.html
>
> "Sparse 1.4"
> by Kenneth Kundert.
> that is distributed under BSD license.
>
>
> It turned out that VXL already carries (a version)
> of this library under:
>
> Utilities/vxl/v3p/netlib/sparse
>
> Ironically,...
> still under the Evil "netlib" label...
>
> (we will come back to that later...)
>
> ---
>
> We are currently experimenting with replacing
> the vnl_lsqr solver with another one based on
> the Sparse library.
>
> Given that this is an issue of copyright infringement,
> we will have to do the replacement even if the new
> library is not technically better than the lsqr one.
>
>
> At this point, the only places where we anticipate
> to see any effect is the FEM registration algorithm,
> which is the only code in ITK that uses the FEM
> solver classes.
>
>
> If you have any experience with using the Sparse
> library we will appreciate your advice and help.
>
>
> If you are aware of any other options on Open
> Source sparse matrix linear solvers, with BSD
> compatible licenses, please let us know.
>
>
> Thanks
>
>
> Luis
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://kitware.com/products/protraining.html
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-developers
>
>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.html
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users
>
>
More information about the Insight-users
mailing list