如果我使用scipy.linalg.solve(我相信这称为 LAPACK 的 gesv 函数)在我的工作站上解决约 12000 个未知问题(具有约 12000 个平方、密集、非对称矩阵)时,我得到了一个很好的答案10-15分钟.
只是为了探索可能性的极限(请注意,我不是说“有用”),我将根本问题的分辨率提高了一倍,这导致需要解决约 50000 个未知数。虽然从技术上讲,一旦我添加了更多 10 GB 的交换空间,这将在我的工作站上运行,但使用一些具有足够 RAM 的硬件似乎更为谨慎,因此我在 AWS EC2 高内存四倍超大型上启动了它。 ..最后一直在努力的地方14 hours(嘿,现货实例很便宜)而且不可能知道它有多远。
不幸的是,我不知道所涉及的求解器的时间复杂度是多少(我的谷歌在这方面让我失败了)。如果是 O(N^2) 那么我预计它会在大约 4 小时后完成;如果是 O(N^3) 那么也许 16 小时内就能完成。当然,这将 N 解释为未知数的数量 - 增加了四倍 - 矩阵中的元素数量增加了 16 倍!
以及建议将帮助我确定这是否有机会在我的(项目)生命周期内完成或不感激地收到!
其他信息:
稀疏矩阵在这里不感兴趣(我的矩阵是密集的,并且在任何情况下 scipy 都不能处理超过2**31
即使在 64 位上也是非零元素)。
我在工作站上使用 Debian/Squeeze 的 scipy,在 EC2 上使用 Ubuntu 12.04。显然都是 64 位。
NxN 矩阵的 DGESV 时间复杂度为 O(N^3)。请参阅此处的表 3.13:http://www.netlib.org/lapack/lug/node71.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)