У меня есть реализация Lanscos SVD с пониженным рангом, которая может быть распределена и обрабатывать очень разреженные матрицы с сотнями миллионов строк и столбцов.Как вы можете себе представить, иногда это занимает несколько дней, чтобы выполнить свою работу.
Недавно я наткнулся на быстрый рандомизированный SVD на Facebook на https://research.fb.com/fast-randomized-svd/ с кодом на http://tygert.com/software.html, и я быЯ хотел бы попробовать это, но код Fortran поддерживает только плотный матричный ввод, и в моем масштабе я не могу использовать это.
Итак, кто-нибудь знает (предпочтительно распределенную версию Fortran) этогоили подобный код, который я мог бы использовать?
Или, поскольку найденный код включает в себя исходный код, есть ли простой способ создать версию с разреженной матрицей из кода с плотной матрицей?
FWIW, код построен на BLAS иLAPACK.
Спасибо за любую помощь, которую вы можете оказать!