2

在 mpi 环境中,哪些库可用于 C/C++ 中密集矩阵的并行分布式 Cholesky 分解?

我找到了 ScaLAPACK 库,这可能是我正在寻找的解决方案。似乎调用起来有点繁琐,有很多 Fortran <-> C 转换要做,这让我觉得它可能没有被广泛使用,因此也许有一些其他的库被用来代替?

或者,当一个已经在使用 MPI 并且 MPI 已经在程序中初始化时,是否有一些 ScaLAPACK 包装器使得在 C 或 C++ 环境中使用起来相对不太痛苦?

4

2 回答 2

1

这些是密​​集矩阵还是稀疏矩阵?

Trilinos是一个巨大的并行科学计算库。子包Amesos可以链接到Scalapack用于密集系统的并行、直接解决方案,也可以链接到UMFPACKSuperLUMUMPS用于稀疏系统。Trilinos 主要是用 C++ 编写的,但如果你喜欢的话,还有 Python 绑定。这可能是矫枉过正,但它会完成工作。

于 2013-06-10T19:22:26.873 回答
1

英特尔 MKL也可能是一种选择,因为它在内部调用 ScaLAPACK。请注意,英特尔支持学生使用此库,但在这种情况下,您必须使用开源 MPI 版本。英特尔论坛也很有帮助。


Elemental也是一个选项,用 C++ 编写,当您想与您的 C/C++ 应用程序集成时,这无疑是一个很大的优势,项目负责人 Jack Poulson 非常友好并且提供了很多帮助。


OpenBLASSuperLUPETSc也很有趣,您可能想在我的回答中阅读更多内容。

于 2015-06-17T08:31:55.350 回答