【发布时间】:2013-11-29 20:43:13
【问题描述】:
我正在尝试反转大小为 50,000 + 行的密集矩阵。我一直在慢慢努力让 SciPy GMRES 操作正常工作。一次迭代似乎花费了过多的时间。我正在输入以下信息:
x_gm = scipy.sparse.linalg.gmres(A,b,tol=1e-08,maxiter=1)
其中 A 是一个类对象,它调用一个函数来计算矩阵向量积 A*v。这使用 Python Multiprocessing Pool 命令快速计算矩阵向量积。对于我感兴趣的矩阵,我使用 8 核的多处理池为这个产品 A*V 计时,大约需要 50 秒。但是,运行上述 gmres 命令进行一次迭代需要 1370 秒。我的印象是,大部分计算时间将是矩阵向量乘积。这似乎有点奇怪,我想知道这里是否还有其他事情发生。 gmres 是否忽略了 1 次迭代命令并进行多次迭代?任何建议或信息将不胜感激。
我使用的 Scipy 版本是 .0.9.0 版。
【问题讨论】: