使用多线程的奇异值分解(SVD)

时间:2014-02-12 13:17:09

标签: multithreading r matlab octave svd

我在3.5GHz / 3,9GHz(6核/ 12线程)服务器上运行大(120k x 600k)和稀疏(0.1非零值)矩阵的部分SVD,使用128GB RAM SVDLIBC。

是否可以使用多线程加速进程,以便充分利用我的服务器配置?

我没有多线程的经验;因此,我要求提供友好的建议和/或指向手册/教程的指针。

[编辑]我也对替代品持开放态度(matlab / octave,r等)

2 个答案:

答案 0 :(得分:0)

在Matlab中,对于稀疏矩阵,您有svds。此实现受益于多线程计算(1)

答案 1 :(得分:0)

请参阅R中的irlba: Fast partial SVD by implicitly-restarted Lanczos bidiagonalization。它只计算第一个用户指定的编号。尺寸。过去有过很好的经验。但是,我使用的是商业版的R,它被用来利用多线程,因此无法保证由于多线程而提高速度。