【发布时间】:2014-06-30 13:07:45
【问题描述】:
我有一个用 python 编写的高强度模型,数组计算涉及超过 200,000 个单元,时间步长超过 4000 个。有两种阵列,一种是细网格阵列,一种是较粗网格网格,来自细网格阵列的信息用于告知粗网格网格的特征。当程序运行时,它只使用了 1% 的 cpu,但最大限度地使用了 ram (8GB)。运行需要几天时间。开始解决这个问题的最佳方法是什么? GPU 处理是个好主意还是我需要找到一种方法将一些已完成的计算卸载到 HDD 上?
我只是想找到解决方案的思路。我的模型是否只是将太多数据拉入内存,导致计算缓慢?
【问题讨论】:
-
您的主要数据结构很可能是以低效的方式设置的。例如,如果每个单元只需要一个位,那么您可以在每个 32 位字中表示 32 个单元,而不是在每个 32 位字中表示一个单元。对我来说,听起来您比您意识到的更有可能使用存储数据的多个副本。另外,您是否可能使用字典之类的东西而不是列表来存储数据?
标签: python arrays memory-management anaconda cellular-automata