Registered Member
|
I need to compute SVD of anywhere from 3k^2 to 3k~6k matrix, and it seems for 3k^2 it takes about an hour. I was wondering (1) is this time reasonable on Core2Quad (Q9550) machine, and (2) is SVD implementation parallelized?
The matrix is no way sparse so I cannot use sparse implementation. Any suggestion? Thanks in advance. |
Registered Member
|
JacobiSVD is very parallelizable, not Eigen doesn't currently parallelize it; you've very welcome to try doing it, check the literature on the subject. Maybe you'll also want to parallelize the QR preconditioner.
Note that without parallelizing it, it would already help a lot to make it cache-friendly by working on blocks. For the QR preconditioner, I think that the non-pivoting HouseholderQR is already blocked so it's cache-friendly, so it could be a lot faster than the default.
Join us on Eigen's IRC channel: #eigen on irc.freenode.net
Have a serious interest in Eigen? Then join the mailing list! |
Registered users: Bing [Bot], Google [Bot], Yahoo [Bot]