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

Luis Ibanez luis.ibanez at kitware.com
Mon Feb 1 16:24:50 EST 2010


Hi Arnaud,

It makes sense to extend the page to cover all the
functionalities that we may need in ITK.

Please feel free to add eigen decomposition to the
table.


The license of METIS is not compatible with ITK.

          and by the way, it is poorly phrased.
          I would stay away from that software.


If TAUCS requires METIS, then TAUCS is a
no-go option as well.


            This is really a sad state of affairs.


We should have Mathematical libraries in the Public Domain.


    If we don't find one,
    I guess we will have to write out one
    and dedicate it to the Public Domain.


        Luis


-----------------------------------------------------------------------------
On Mon, Feb 1, 2010 at 4:08 PM, Arnaud GELAS
<arnaud_gelas at hms.harvard.edu> wrote:
> Hi Luis,
>
> Great idea to start a wiki page! I'll edit it!
>
> Do you want to restrict this page to sparse linear solvers? What about
> sparse eigen decomposition?
>
> Sparse direct solver usually starts by reordering the matrix, then
> factorization (decomposition) part follows, and finally if you are willing
> to the linear system is solved.
> The reordering part is often performed by using METIS library
> (http://glaros.dtc.umn.edu/gkhome/views/metis).
> The license of the latest version
> (http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.0pre2.tar.gz)
> states:
>
> The METIS package is copyrighted by the Regents of the University of
> Minnesota. It can be freely used for educational and research purposes
> by non-profit institutions and US government agencies only. Other
> organizations are allowed to use METIS only for evaluation purposes,
> and any further uses will require prior approval. The software
> may not be sold or redistributed without prior approval. One may
> make copies of the software for their use provided that the copies,
> are not sold or distributed, are used under the same terms and
> conditions.
>
> ---------------------------------------------------
>
> An usual set up for taucs require metis, and link against metis...
>
> So, we should first check with people from TAUCS if metis is really
> required?
> (If we could skip the reordering part at the cost of lower performances).
>
> And if it can not be optionally replaced by boost-BGL reordering algorithms
>  (http://www.boost.org/doc/libs/1_41_0/libs/graph/doc/table_of_contents.html),
> or by another library BSD compliant?
>
> Arnaud
>
> On 02/01/2010 03:29 PM, Luis Ibanez wrote:
>>
>> Hi Arnaud,
>>
>> Thanks a lot , all these suggestions are very useful.
>>
>> A) I'll give it a shot at using vnl_sparse_lu
>>
>>     (I must first double check that is not encumbered
>>      by the ACM copyright/license absurd restrictions).
>>
>>
>> B)  About the alternative libraries:
>>      Thanks for gathering this list.
>>
>> B.1)  SuiteSparse,
>>          since it is a LGPL libraries, is not an option.
>>          at least not for being a default ITK component.
>>          We could however, support it the way we support FFTW.
>>         An pass the licensing nightmare down to the users who
>>         enable that option.
>>
>> B.2)  TAUCS,
>>          Looks like a good option.
>>          The MIT license is fully compatible with BSD.
>>
>> B.3)  SuperLU,
>>          Reading its license, it turns out to be a standard BSD.
>>          So, this is also a good option.
>>
>> It looks like we should bring this discussion to the Wiki,
>>
>> I made a page for it at:
>> http://www.itk.org/Wiki/Proposals:Sparse_Linear_Solvers
>>
>>
>> That is linked from the 2010 Proposals Table:
>> http://www.itk.org/Wiki/ITK_Oversight_Committee#2010
>>
>>
>> Let's gather more factors in the Wiki, so we can make
>> an educated decision.
>>
>>
>>      Thanks,
>>
>>
>>          Luis
>>
>>
>>
>> ------------------------------------------------------------------------------
>> On Sun, Jan 31, 2010 at 4:28 PM, 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
>>>
>>>
>>>
>
>


More information about the Insight-users mailing list