DGESVD can benefit of some multithreading at the BLAS level. (So if you use a
multithreaded BLAS you can get some speedup. ) However this will not be
"perfect". ( You would be lucky to observe any speedup at all actually ... )
1) your matrix is tall and skinny
2) and 2a) you have relatively well clustered singular values (say the ratio of
the smallest on the largest is less than 1e4)
or 2b) you do not care about the accuracy of the smallest singular values (just
want the largest ones)
you can compute S = A^H * A (ZHERK), then compute the symmetric eigenvalue
decomposition of S (ZHEEV or ZHEEVR or ZHEEVD), then obtain the singular values
(See a linear algebra textbook.)
This does not compute the smallest singular values accurately, this does not
work if n is not << m, but otherwise, ZHERK dominates the operation count and
ZHEERK does parallelize well.
Any multithreaded BLAS will give you great speedup.
Otherwise you can check out the PLASMA project. I know that they are working on
the SVD for multicore platforms.
I think as of now they are able to compute the singular values. They have great
On Sep 22, 2011, at 2:59 PM, Jim Brown wrote:
I am looking for a multiprocessor, fast Singular Value Decomposition
I have down loaded netlibfiles\lapack\double and I found dgesvd.f.
Is this a multiprocessor, fast Singular Value Decomposition (SVD) solver?
Or can you recommend another such SVD solver?
Lapack mailing list