1

我一直在一些大型矩阵上使用 scipy.sparse.linalg.eigs,毫不奇怪,这需要一段时间。所以,我一直在寻找加快速度的方法。我的理解是,在引擎盖下,scipy 代码使用ARPACK,并且有一个使用 MPI 的 ARPACK 并行版本。是否有可能让 scipy 使用 ARPACK 的并行版本而不会有太多痛苦?如果是这样,怎么做?

(我应该注意到 MATLAB 的 eigs 等价物似乎是多线程的,所以这可能是最不痛苦的选择。)

4

1 回答 1

0

ARPACK 的 (MPI-) 并行版本似乎是一个完全不同的项目,称为PARPACK

“现在可以使用 ARPACK 库的并行版本。当前支持的消息传递层是 BLACS 和 MPI。并行 ARPACK (PARPACK) 是作为当前 ARPACK 库(2.1 版)的扩展提供的。”

你看过PETsc4py吗?或者甚至可能

“如果您关心速度并且您拥有 NVIDIA GPU,请探索从 Python 调用并行稀疏线性代数库(如 CUSP 或 cuSPARSE)。”

(见这个答案

于 2016-08-03T22:54:03.413 回答