3

我有一个用 python 编写的高强度模型,数组计算涉及超过 200,000 个单元,时间步长超过 4000 个。有两种阵列,一种是细网格阵列,一种是较粗网格网格,来自细网格阵列的信息用于告知粗网格网格的特征。当程序运行时,它只使用了 1% 的 cpu,但最大限度地使用了 ram (8GB)。运行需要几天时间。开始解决这个问题的最佳方法是什么?GPU 处理是一个好主意,还是我需要找到一种方法将一些已完成的计算卸载到 HDD?

我只是想寻找解决方案的思路。我的模型是否只是将太多数据拉入内存,导致计算缓慢?

4

2 回答 2

1

听起来你的问题是内存管理。您可能正在写入交换文件,这会大大减慢您的处理速度。正如您所说,GPU 不会帮助您解决这个问题,因为您正在最大化您的 RAM,而不是您的处理(CPU)。您可能需要重写您的算法或使用不同的数据类型,但您没有共享您的代码,因此很难仅根据您编写的内容进行诊断。我希望这些信息足以让您朝着正确的方向前进。

于 2014-05-13T03:04:39.397 回答
1

如果网格是稀疏的,你最好只跟踪填充的部分,使用不同的数据结构,而不是一个巨大的 python 列表(数组)。

于 2014-05-13T03:17:25.177 回答