Поэтому я хотел бы выполнить факторизацию SVD для большой матрицы (1000-25000 x 4096) в C ++. Я пробовал LAPACKE dgesdd, Armadillo svd / svd_econ и Eigen, но все они кажутся однопоточными и довольно медленными. Я также в настоящее время пытаюсь реализовать решение, основанное на redsvd.
Есть ли у вас какие-либо предложения о том, как реализовать быструю факторизацию SVD, предпочтительно с использованием многопоточности. Я заметил, что Matlab использует многопоточные SVD, поэтому это должно быть возможно.
Кроме того, я запускаю g ++ на 64-битной машине Linux, если это будет иметь какое-либо значение.
Заранее спасибо.
Библиотеки ядра Math Kernel от Intel предлагают параллельные реализации LAPACKE. Они также доступны для Linux.
Других решений пока нет …