Библиотеки для параллельного распределённого холесского разложения в c/ C++ в среде mpi?

Какие библиотеки доступны для параллельного распределенного холесского разложения плотных матриц в C/C++ в среде mpi?

Я нашел библиотеку ScaLAPACK, и это может быть решением, которое я ищу. Кажется, что это немного неудобно для вызова, так как нужно сделать много преобразований в Fortran <-> C, что заставляет меня думать, что, возможно, он не используется широко, и, следовательно, возможно, есть другие библиотеки, которые используются вместо этого?

В качестве альтернативы, существуют ли обертки для ScaLAPACK, которые делают его относительно не слишком болезненным для использования в среде C или C++, когда один уже использует MPI, а MPI уже инициализирован в программе?

2 ответа

Решение

Это плотные или разреженные матрицы?

Трилинос - это огромная библиотека для параллельных научных вычислений. Подпакет Amesos может подключаться к Scalapack для параллельного прямого решения плотных систем и к UMFPACK, SuperLU или MUMPS для разреженных систем. Trilinos в основном на C++, но есть привязки Python, если вам нравится. Это может быть излишним, но это сделает работу.

Intel MKL также может быть выбором, так как он вызывает ScaLAPACK внутри. Обратите внимание, что Intel поддерживает использование этой библиотеки студентами, но в этом случае вам придется использовать версию MPI с открытым исходным кодом. Также форум Intel очень полезен.


Elemental также является опцией, написанной на C++, что, безусловно, является большим преимуществом, когда вы хотите интегрироваться со своим C/C++ приложением и руководителем проекта, Джек Полсон очень дружелюбен и очень помогает.


OpenBLAS, SuperLU и PETSc также интересны, и вы можете прочитать больше в моем ответе.

Другие вопросы по тегам