многопоточность — распараллеливание вычислений SVD Переполнение стека

Поэтому я хотел бы выполнить факторизацию SVD для большой матрицы (1000-25000 x 4096) в C ++. Я пробовал LAPACKE dgesdd, Armadillo svd / svd_econ и Eigen, но все они кажутся однопоточными и довольно медленными. Я также в настоящее время пытаюсь реализовать решение, основанное на redsvd.

Есть ли у вас какие-либо предложения о том, как реализовать быструю факторизацию SVD, предпочтительно с использованием многопоточности. Я заметил, что Matlab использует многопоточные SVD, поэтому это должно быть возможно.

Кроме того, я запускаю g ++ на 64-битной машине Linux, если это будет иметь какое-либо значение.

Заранее спасибо.

2

Решение

Библиотеки ядра Math Kernel от Intel предлагают параллельные реализации LAPACKE. Они также доступны для Linux.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]