Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 mpi 环境中,哪些库可用于 C/C++ 中密集矩阵的并行分布式 Cholesky 分解?
我找到了 ScaLAPACK 库,这可能是我正在寻找的解决方案。似乎调用起来有点繁琐,有很多 Fortran <-> C 转换要做,这让我觉得它可能没有被广泛使用,因此也许有一些其他的库被用来代替?
或者,当一个已经在使用 MPI 并且 MPI 已经在程序中初始化时,是否有一些 ScaLAPACK 包装器使得在 C 或 C++ 环境中使用起来相对不太痛苦?
这些是密集矩阵还是稀疏矩阵?
Trilinos是一个巨大的并行科学计算库。子包Amesos可以链接到Scalapack用于密集系统的并行、直接解决方案,也可以链接到UMFPACK、SuperLU或MUMPS用于稀疏系统。Trilinos 主要是用 C++ 编写的,但如果你喜欢的话,还有 Python 绑定。这可能是矫枉过正,但它会完成工作。
英特尔 MKL也可能是一种选择,因为它在内部调用 ScaLAPACK。请注意,英特尔支持学生使用此库,但在这种情况下,您必须使用开源 MPI 版本。英特尔论坛也很有帮助。
Elemental也是一个选项,用 C++ 编写,当您想与您的 C/C++ 应用程序集成时,这无疑是一个很大的优势,项目负责人 Jack Poulson 非常友好并且提供了很多帮助。
OpenBLAS、SuperLU和PETSc也很有趣,您可能想在我的回答中阅读更多内容。