我是一个在网格基础上执行计算的科学应用程序的作者(想想有限差分网格计算)。每个网格单元由一个数据对象表示,该数据对象保存状态变量和单元特定常量的值。到目前为止,所有网格单元对象在模拟期间一直存在于 RAM 中。
我遇到的情况是,使用我的代码的人希望使用比可用 RAM 更多的网格单元来运行它。我正在考虑修改我的代码,以便在任何给定时间仅将单元子集的信息保存在 RAM 中。不幸的是,网格(或矩阵,如果您愿意)不是稀疏的,这消除了一整类可能的解决方案。
问题:我假设在野外有一些库旨在促进这种类型的数据访问(即检索常量和变量,更新变量,存储以供将来参考,擦除内存,继续......)经过几个小时的谷歌搜索和 Stack Overflow,我发现这类库相对较少。
我知道一些选项,例如 HSL 数学库中的这个选项:http ://www.hsl.rl.ac.uk/specs/hsl_of01.pdf 。我更喜欢使用开源并用 Fortran 或 C 编写的东西。(我的代码主要是 Fortran 95/2003,加入了一点 C 和 Python 来很好地衡量!)
我将不胜感激有关可用库的任何建议或有关如何重新表述我的问题的建议。谢谢!