1
3
$1.20/hr 而且已经 34 GB of memory |
2
2
任何合适的答案都将取决于您需要如何访问数据。随机访问?顺序存取? 32GB并没有那么大。 您需要多久处理一次数据?每一次(一生|年|日|小时|纳秒)?通常,事情只需要做一次。这对优化解决方案所需的工作量有着深远的影响。 你要做什么样的运算(你提到乘法)?数据是否可以分割成块,以便一组操作所需的所有数据都包含在一个块中?这将使拆分它以便于并行执行。
|
3
2
此外,我认为将其存储在(关系)数据库中比从硬盘读取要快,因为RDBMS将为您执行一些优化,比如缓存。 |
4
2
你的描述听起来更数学密集,在这种情况下,你可能希望所有的数据在内存中一次。单机内存32gb不无道理; Amazon EC2 提供高达68 GB的虚拟服务器。 |
5
1
如果你不需要更多的信息,如果你需要最快速的访问所有的数据,我会用C作为你的编程语言,用一些*nix的风格作为O/S,买RAM,现在相对便宜。这也取决于你熟悉什么,你也可以走windows路线。但正如其他人提到的,这将取决于你如何使用这些数据。 |
6
1
到目前为止,有很多非常不同的答案。上面提到了两个很好的起点。大卫建议一些硬件和有人提到学习C。这两个都是好的点。
确定你的工作流程-,如果你的工作流程是线性的,那是一回事。如果工作流不是线性的,我会设计一个引用内存页的二叉树。互联网上有大量关于B树的信息。此外,在C中使用这些B树将更容易,因为您还可以设置和操作内存分页。 |
7
1
根据您的使用情况,一些数学和物理问题通常是零(例如,有限元模型)。如果您希望对您的数据是这样,那么您可以通过使用稀疏矩阵而不是将所有这些零实际存储在内存或磁盘中,从而节省大量的空间。 请查看wikipedia以获取说明,并确定这是否可以满足您的需要: http://en.wikipedia.org/wiki/Sparse_matrix |
8
1
还有一个想法: 尝试使用SSD存储数据。由于您正在获取非常少量的随机数据,SSD可能会快得多。 |
9
1
你可以尝试使用
|
10
0
整个数据库技术都是关于处理RAM中无法容纳的大量数据,因此这可能是您的出发点(例如,获取一本好的dbms原理书,阅读有关索引、查询执行等的内容)。
|
11
0
|
12
0
用这个程序能解决吗?
这会比硬盘存储方法更快吗?还是我在用大锤敲坚果? |
13
0
我建议的第一件事是选择一种面向对象的语言,并开发或找到一个类,让您可以操纵一个4d数组,而不必关心它的实际实现方式。
最后,一旦我对算法和数据进行了调试,我就会考虑在一台可以在内存中保存所有数据的机器上争取时间。 Amazon EC2 |
14
0
如何处理大量数据通常围绕以下因素:
如果数据访问顺序基本上是随机的,那么您需要访问尽可能多的RAM和/或找到一种方法来至少部分地组织顺序,以便不需要同时在内存中存储那么多的数据。虚拟内存系统速度减慢 一旦超过物理RAM限制,就会发生重大交换。解决这方面的问题可能是最关键的问题。 除了上面的数据访问顺序问题之外,我不认为您的问题有重大的I/O问题。在当前的计算机系统中,读取/写入32gb通常以分钟为单位,即使数据大小达到1tb,也不应超过几个小时。 编程语言的选择实际上是 不 |
Community wiki · 如何调试Python内存故障? 1 年前 |
tuskiomi · 如何为参考提供明确的锈蚀寿命? 2 年前 |
cobb208 · Malloc正在为释放指针引发错误 2 年前 |
mo FEAR · C++ STL映射是否在创建后移动了一个值的位置? 2 年前 |
Pooyanoss · 覆盖类的堆栈分配实例 2 年前 |
TheKing · 为什么数组的地址可以有负值? 2 年前 |
Http2inc · 如何从内存中解析这些二进制数据? 2 年前 |
tifrel · 如何检查已编译类型的表示形式? 2 年前 |
Gabriele · 释放GSL矩阵的正确方法是什么? 6 年前 |
Makogan · 3D纹理大小影响程序输出,不会引发错误 6 年前 |