我有一个科学应用程序,从磁盘读取可能非常大的数据文件,并将其转换为各种Python数据结构,如地图和列表等。在进行数值分析时需要调用
还有其他建议吗?我想我的理想情况是,可以根据软内存限制将内存中的数据结构分阶段转移到磁盘,并且这个过程应该尽可能透明。这些缓存框架中的任何一个可以帮助吗?
编辑:非常感谢所有提供的建议和指导。其中,我认为用户488551的评论最相关。尽管我喜欢Map/Reduce,但对于许多科学应用程序来说,代码并行化的设置和工作是更大的难题,比起我最初的问题来说更难解决。因此,在实际情况中,Bill的答案更接近我们所能做到的,因此我选择了他的答案。感谢大家。
NumPy
。问题是内存使用量会快速增长。当调用交换空间时,系统会明显变慢。我看到的一般策略有:
- 惰性初始化:这似乎无助于许多操作仍需要内存中的数据。
- Shelving:此Python标准库似乎支持将数据对象写入数据文件(由某个数据库支持)。我的理解是它会将数据转储到文件中,但如果需要,仍需将所有数据加载到内存中,因此实际上并没有什么帮助。如果我有误,请纠正我。
- 第三种选择是利用数据库,并将尽可能多的数据处理卸载到数据库中。
我们需要计算每个(x,y)的t直方图并输出一个三维数组。在时间t观察到坐标(x,y)的事件E。
还有其他建议吗?我想我的理想情况是,可以根据软内存限制将内存中的数据结构分阶段转移到磁盘,并且这个过程应该尽可能透明。这些缓存框架中的任何一个可以帮助吗?
编辑:非常感谢所有提供的建议和指导。其中,我认为用户488551的评论最相关。尽管我喜欢Map/Reduce,但对于许多科学应用程序来说,代码并行化的设置和工作是更大的难题,比起我最初的问题来说更难解决。因此,在实际情况中,Bill的答案更接近我们所能做到的,因此我选择了他的答案。感谢大家。