8

如果我scipy.linalg.solve在我的工作站上使用(我相信它称为 LAPACK 的 gesv 函数)来解决 ~12000 个未知问题(使用 ~12000 方、密集、非对称矩阵),我会在10-15 分钟内得到一个很好的答案。

只是为了探索可能的极限(注意我没有说“有用”),我将潜在问题的分辨率提高了一倍,这导致需要解决约 50000 个未知数。虽然从技术上讲,一旦我添加了更多 10 GB 的交换空间,这将在我的工作站上运行,但使用一些具有足够 RAM 的硬件似乎更谨慎,因此我在 AWS EC2 高内存 Quadruple Extra Large 上启动了它。 .. 它在过去14 小时内一直在磨损(嘿,现场实例很便宜),并且无法判断它有多远。

不幸的是,我不知道所涉及的求解器的时间复杂度是多少(我的 google-fu 在这方面失败了)。如果是 O(N^2) 那么我预计它会在大约 4 小时后完成;如果是 O(N^3) 那么可能会在 16 小时内完成。当然,这将 N 解释为未知数的数量——它翻了两番——矩阵中的元素数量增加了 16 倍!

以及帮助我​​确定这是否有机会在我的(项目)生命周期内完成的建议,或者没有得到感激的建议!

其他信息:

稀疏矩阵在这里不感兴趣(我的矩阵是密集的,在任何情况下,即使在 64 位上,scipy 也不能处理超过2**31非零的元素)。

我在工作站上使用 Debian/Squeeze 的 scipy,在 EC2 上使用 Ubuntu 12.04。显然都是64位。

4

1 回答 1

13

NxN 矩阵的 DGESV 时间复杂度为 O(N^3)。请参阅此处的表 3.13:http: //www.netlib.org/lapack/lug/node71.html

于 2012-09-30T21:57:58.430 回答