From: Luis I. <lui...@ki...> - 2010-01-31 19:50:14
|
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 |
Re: [Vxl-users] [Insight-developers] Replacing Sparse Matrix Linear
Solver : due to Licensing issues
From: Arnaud G. <arn...@hm...> - 2010-01-31 21:28:14
|
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 |
From: Tom V. <tom...@gm...> - 2010-02-01 07:36:46
|
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 <arn...@hm...> 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 > > |
From: Peter V. <pet...@ya...> - 2010-02-01 11:41:05
|
Just want to drop in here with a general remark about the vxl (or actually; vnl) design w.r.t. netlib and other 3rd party libraries: * There has never been a "hard" dependency on netlib (or whatever) external code library. We have deliberately kept those 3rd party code in a separate code branch "v3p". * vnl/algo is a "C++ compatibility layer" on top of this v3p stuff. It should at least be transparent to all vxl code using vnl/algo when one of the underlying implementations changes. All such implementation stuff is only present in files core/vnl/algo/*.cxx and .txx (21 of them currently). Search for "#include <vnl/algo/vnl_netlib.h>" to locate all dependencies. -- Peter. -- __________________________________________________ Använder du Yahoo!? Är du trött på spam? Yahoo! E-post har det bästa spamskyddet som finns http://se.mail.yahoo.com |
From: Osama M. <osa...@gm...> - 2010-02-01 16:00:40
|
Is the issue here the avoidance of using any library that has a non-free license? If so, the polygon clipping library used in vgl (see vgl/internals/gpc.h) looks like another one. -osama On Mon, Feb 1, 2010 at 5:40 AM, Peter Vanroose <pet...@ya...>wrote: > Just want to drop in here with a general remark about the vxl (or actually; > vnl) design w.r.t. netlib and other 3rd party libraries: > > * There has never been a "hard" dependency on netlib (or whatever) external > code library. We have deliberately kept those 3rd party code in a separate > code branch "v3p". > * vnl/algo is a "C++ compatibility layer" on top of this v3p stuff. > It should at least be transparent to all vxl code using vnl/algo when one > of the underlying implementations changes. All such implementation stuff is > only present in files core/vnl/algo/*.cxx and .txx (21 of them currently). > Search for "#include <vnl/algo/vnl_netlib.h>" to locate all dependencies. > > -- Peter. > > > |
From: Ian S. <ian...@st...> - 2010-02-01 16:19:36
|
On 01/02/2010 15:36, Osama Masoud wrote: > Is the issue here the avoidance of using any library that has a non-free > license? Sort-of. > If so, the polygon clipping library used in vgl > (see vgl/internals/gpc.h) looks like another one. We are aware and have dealt with that issue in the repository - see the VXL commit logs and vxl-maintainers archive for details. There is need to trouble ITK with this, as I don't believe they use vgl. Ian. > -osama > > On Mon, Feb 1, 2010 at 5:40 AM, Peter Vanroose > <pet...@ya... <mailto:pet...@ya...>> wrote: > > Just want to drop in here with a general remark about the vxl (or > actually; vnl) design w.r.t. netlib and other 3rd party libraries: > > * There has never been a "hard" dependency on netlib (or whatever) > external code library. We have deliberately kept those 3rd party > code in a separate code branch "v3p". > * vnl/algo is a "C++ compatibility layer" on top of this v3p stuff. > It should at least be transparent to all vxl code using vnl/algo > when one of the underlying implementations changes. All such > implementation stuff is only present in files core/vnl/algo/*.cxx > and .txx (21 of them currently). > Search for "#include <vnl/algo/vnl_netlib.h>" to locate all > dependencies. > > -- Peter. > > |
From: Bill L. <bil...@gm...> - 2010-02-01 13:41:55
|
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...@gm...> 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 > <arn...@hm...> 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 > |
From: Luis I. <lui...@ki...> - 2010-02-01 20:49:02
|
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 <bil...@gm...> 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...@gm...> 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 >> <arn...@hm...> 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 >> > |
Re: [Vxl-users] [Insight-developers] Replacing Sparse Matrix Linear
Solver : due to Licensing issues
From: Luis I. <lui...@ki...> - 2010-02-01 20:34:32
|
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 <arn...@hm...> 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 > > |
Re: [Vxl-users] [Insight-developers] Replacing Sparse Matrix Linear
Solver : due to Licensing issues
From: Arnaud G. <arn...@hm...> - 2010-02-01 21:08:49
|
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 > <arn...@hm...> 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 >> >> >> |
Re: [Vxl-users] [Insight-developers] Replacing Sparse Matrix Linear
Solver : due to Licensing issues
From: Luis I. <lui...@ki...> - 2010-02-01 21:24:58
|
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 <arn...@hm...> 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 >> <arn...@hm...> 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 >>> >>> >>> > > |