[Insight-users] [Insight-developers] Replacing Sparse Matrix Linear Solver : due to Licensing issues

Luis Ibanez luis.ibanez at kitware.com
Mon Feb 1 15:48:53 EST 2010


I agree with Bill,

Libraries with LGPL are not an option.

At least not to be the primary support that is
included with ITK.

We could however support them as options
that users can turn ON locally, just as we do
with FFTW.

Our immediate case, however is that we need
to replace vnl_lsqr  Right Now, with something
that is it still a default option included with ITK.

BTW: I have added to the proposal page:
http://www.itk.org/Wiki/Proposals:Sparse_Linear_Solvers

the link to your page:
http://www.itk.org/Wiki/ITK_Release_4.0#3rd_Party_Libraries


---

I keep thinking that NSF/NASA/DOD/DOE + EU should
fund the development of set of mathematical libraries to
be released in the Public Domain.

This is a matter of essential computing infrastructure.



   Thanks


       Luis



--------------------------------------------------------
On Mon, Feb 1, 2010 at 8:41 AM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
> Eigen is LGPLv3. We just had a long discussion on the VTK developers
> list about it. They claim the license is BSD friendly for template
> code. They have a special FAQ )(multi-page) just to clarify the
> license issues (
> http://eigen.tuxfamily.org/index.php?title=Licensing_FAQ ).
>
> I don't agree that the license is BSD and company friendly. I hate to
> repeat the VTK discussion here since it's already over 40 e-mail
> exchanges in a couple of days.
>
> Bill
>
> On Mon, Feb 1, 2010 at 2:36 AM, Tom Vercauteren
> <tom.vercauteren at gmail.com> wrote:
>> 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
>>>
>>>
>> _______________________________________________
>> 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
>>
>


More information about the Insight-users mailing list