Какие библиотеки доступны для параллельного распределенного холесского разложения плотных матриц в C / C ++ в среде mpi?
Я нашел библиотеку ScaLAPACK, и это может быть решением, которое я ищу. Кажется, что это немного неудобно, хотя, много Fortran <-> С преобразования, чтобы сделать, что заставляет меня думать, что, возможно, он не используется широко, и, следовательно, может быть, есть некоторые другие библиотеки, которые используются вместо?
В качестве альтернативы, существуют ли обертки для ScaLAPACK, которые делают его относительно не слишком болезненным для использования в среде C или C ++, когда кто-то уже использует MPI, а MPI уже инициализирован в программе?
Это плотные или разреженные матрицы?
Trilinos огромная библиотека для параллельных научных вычислений. Подпакет Amesos может ссылаться на ScaLAPACK для параллельного, прямого решения плотных систем и UMFPACK, SuperLU или же MUMPS для разреженных систем. Trilinos в основном на C ++, но есть привязки Python, если вам нравится. Это может быть излишним, но это сделает работу.
Intel MKL также может быть выбором, так как он вызывает ScaLAPACK внутри. Обратите внимание, что Intel поддерживает использование этой библиотеки студентами, но в этом случае вам придется использовать версию MPI с открытым исходным кодом. Также форум Intel очень полезен.
стихийный также вариант, написанный на C ++, который, безусловно, является большим преимуществом, когда вы хотите интегрироваться с вашим C / C ++ приложением и руководителем проекта, Джек Полсон очень дружелюбен и очень помогает.
OpenBLAS, SuperLU а также PETSc также интересно, и вы можете прочитать больше в моем ответ.