Hi all, Michael Berry has kindly agreed to relicense SVDPACK or SVDPACKC for use in SciPy.
""" SVDPACK comprises four numerical (iterative) methods for computing the singular value decomposition (SVD) of large sparse matrices using double precision ANSI Fortran-77. A compatible ANSI-C version (SVDPACKC) is also available. This software package implements Lanczos and subspace iteration-based methods for determining several of the largest singular triplets (singular values and corresponding left- and right-singular vectors) for large sparse matrices. """ He asked that we let him know whether we'd like to use the Fortran or the C version. Which would best suit SciPy? I have a tendency to prefer SVDPACKC, since we can reach it easily via Cython. I'd appreciate your feedback. Regards Stéfan
Stefan, This is fantastic! I definitely vote for the C version and a cython wrapper. Brian 2009/4/23 Stéfan van der Walt <stefan@sun.ac.za>:
Hi all,
Michael Berry has kindly agreed to relicense SVDPACK or SVDPACKC for use in SciPy.
""" SVDPACK comprises four numerical (iterative) methods for computing the singular value decomposition (SVD) of large sparse matrices using double precision ANSI Fortran-77. A compatible ANSI-C version (SVDPACKC) is also available. This software package implements Lanczos and subspace iteration-based methods for determining several of the largest singular triplets (singular values and corresponding left- and right-singular vectors) for large sparse matrices. """
He asked that we let him know whether we'd like to use the Fortran or the C version. Which would best suit SciPy? I have a tendency to prefer SVDPACKC, since we can reach it easily via Cython.
I'd appreciate your feedback.
Regards Stéfan _______________________________________________ Scipy-dev mailing list Scipy-dev@scipy.org http://mail.scipy.org/mailman/listinfo/scipy-dev
""" SVDPACK comprises four numerical (iterative) methods for computing the singular value decomposition (SVD) of large sparse matrices using double precision ANSI Fortran-77. A compatible ANSI-C version (SVDPACKC) is also available. This software package implements Lanczos and subspace iteration-based methods for determining several of the largest singular triplets (singular values and corresponding left- and right-singular vectors) for large sparse matrices. """
He asked that we let him know whether we'd like to use the Fortran or the C version. Which would best suit SciPy? I have a tendency to prefer SVDPACKC, since we can reach it easily via Cython.
Is there a speed difference between the two? If it's significantly faster using Fortran, some would prefer it.
2009/4/24 Yosef Meller <mellerf@netvision.net.il>:
Is there a speed difference between the two? If it's significantly faster using Fortran, some would prefer it.
I don't think the Fortran version would be significantly faster, but I do not have proof. The benchmarks for SVDPACKC (algorithms) are available in their technical report: http://www.netlib.org/tennessee/ut-cs-93-194.ps Regards Stéfan
On 24-Apr-09, at 1:00 AM, Stéfan van der Walt wrote:
Hi all,
Michael Berry has kindly agreed to relicense SVDPACK or SVDPACKC for use in SciPy.
Hmm, I thought that sparse SVD was provided by ARPACK, already included in SciPy, and it was just a matter of writing the wrappers. Is that still the case, or is SVDPACK for some reason a substantially easier route/is SVDPACK better or more featureful? That said: I think you're right about preferring SVDPACKC, Stefan. WIth all of the annoying issues surrounding Fortran compilers and ABIs, it seems to me that the less new Fortran code gets added to SciPy, the better. David
2009/4/24 David Warde-Farley <dwf@cs.toronto.edu>:
Hmm, I thought that sparse SVD was provided by ARPACK, already included in SciPy, and it was just a matter of writing the wrappers. Is that still the case, or is SVDPACK for some reason a substantially easier route/is SVDPACK better or more featureful?
I guess there are trade-offs between the algorithms, but I can't give you any details yet. When I mailed Michael Berry, the author of SVDPACKC, a while ago, he wrote: """ We used Lanczos, Subspace Iteration, and Trace Minimization algorithms for developing svdpack and svdpackc. The Lanczos routines (las1 and las2) are fairly robust for computing extremal s-triplets - not the entire spectrum. You can also evaluate ARPACK which is also in NETLIB and is based on Arnoldi methods (similar to Lanczos). """ What I do know is that the ARPACK in SciPy currently does not contain code for the SVD. The code can be found in http://www.caam.rice.edu/software/ARPACK/SRC/arpack96.tar.gz as ARPACK/EXAMPLES/SVD/ssvd.f. Regards Stéfan
2009/4/24 Stéfan van der Walt <stefan@sun.ac.za>:
2009/4/24 David Warde-Farley <dwf@cs.toronto.edu>:
Hmm, I thought that sparse SVD was provided by ARPACK, already included in SciPy, and it was just a matter of writing the wrappers. Is that still the case, or is SVDPACK for some reason a substantially easier route/is SVDPACK better or more featureful?
Michael Berry also wrote: """ Our codes are engineered to compute extremal singular values and singular vectors. If ARPACK can approximate the entire spectrum, you might want to go with those routines. """ Stéfan
participants (4)
-
Brian Granger
-
David Warde-Farley
-
Stéfan van der Walt
-
Yosef Meller