并行化SVD计算c ++

时间:2014-02-05 11:27:56

标签: c++ multithreading parallel-processing svd factorization

所以我想在C ++中对大矩阵(1000-25000 x 4096)进行SVD​​分解。我尝试过LAPACKE dgesdd,Armadillo svd / svd_econ和Eigen,但它们似乎都是单线程且非常慢。我目前也正在尝试实施基于redsvd的解决方案。

对于如何实现快速SVD分解,您是否有任何建议,最好使用多线程。我注意到Matlab正在使用多线程SVD,所以它应该是可能的。

另外,我在64位Linux机器上运行g ++,如果这样做有任何重要性。

提前谢谢。

1 个答案:

答案 0 :(得分:3)

英特尔的数学核心库提供LAPACKE的并行实现。它们也适用于Linux。