我遇到以下问题。我需要存储大量信息(〜32 GB),并能够尽可能快地对其进行操作。我想知道什么是最好的方法(结合编程语言+ OS +无论您认为什么重要)。

我正在使用的信息结构是 double 浮点数(8个字节)的4D数组(NxNxNxN)。现在,我的解决方案是将4D阵列切成2D阵列,并将它们存储在计算机HDD中的单独文件中。这真的很慢,并且数据的操作难以忍受,所以这根本不是解决方案!

我正在考虑进入我所在国家的 super 计算设施并将所有信息存储在RAM中,但是我不确定如何实现应用程序以利用它(我不是专业程序员,所以任何一本书/reference对我有很大帮助)。

我正在考虑的另一种解决方案是购买一台具有大量RAM的专用服务器,但是我不确定这是否可以解决问题。因此,现在我的无知并没有让我选择最佳的进行方式。

如果您处于这种情况下该怎么办?我愿意接受任何想法。

提前致谢!

编辑:抱歉,由于没有提供足够的信息,我将尝试更加具体。

我要存储一个离散的4D数学函数。我要执行的操作包括数组的转置(更改b [i,j,k,l] = a [j,i,k,l]等),数组乘法等。

由于这是拟议实验的模拟,因此该操作将仅应用一次。一旦获得结果,就无需对数据执行更多操作。

编辑(2):

我也希望将来能够存储更多信息,因此该解决方案应具有某种可扩展性。当前的32 GB目标是因为我想拥有N = 256点的数组,但是如果我可以使用N = 512(这意味着要存储512 GB,那就更好了!)。

最佳答案

亚马逊的“高内存超大型实例”仅为$1.20/hr,并且具有34 GB of memory。假设您不经常运行此程序,则可能会发现它很有用。

关于arrays - 如何处理*大量*的数据量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2629988/

10-12 13:29