Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Parallelize SVD computations c++

So I've would like to do an SVD factorization of a large matrix (1000-25000 x 4096) in C++. I have tried LAPACKE dgesdd, Armadillo svd/svd_econ and Eigen but all of them seem to be single threaded and quite slow. I'm also currently trying to implement a solution based on redsvd.

Do you have any suggestions on how to implement a fast SVD factorization preferably using multi-threading. I've noticed that Matlab is using multi-threaded SVD so it should be possible.

Also, I'm running g++ on a 64-bit Linux machine if that would be of any importance.

Thank you in advance.

like image 826
user3190373 Avatar asked Dec 31 '25 20:12

user3190373


1 Answers

Intel's Math Kernel Libraries offer parallel implementations of LAPACKE. They are available for Linux as well.

like image 126
Trifon Avatar answered Jan 03 '26 09:01

Trifon



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!