如何有效地存储和访问4D矩阵?

时间:2018-06-27 10:07:37

标签: performance bigdata storage memory-mapping

我有一个 4D矩阵,该数据不能放入RAM(〜70GB)。它代表沿时间的体积图像(尺寸x,y,z,t)。有时我想访问一个xy切片,有时我想访问沿着t的体素的所有值,有时我想访问沿着t的一组xyz值的值。

我实现此目标的方法是将4D原始二进制矩阵存储在内存中,并使用NRRD library来访问它,这要归功于分离的标头,以及是否通过matlab中的内存映射。 / p>

问题在于它效率低。我在“慢速”轴上经历了巨大的访问时间。所以问题是:如何有效地做到这一点?(我的存储是带有硬盘的RAID)。

我可以尝试几件事:

  • 更改语言(C会更快吗?)
  • 尝试HDF5块(这就是this post的建议)
  • 购买SSD(不是一个真正的选择,因为我有数百TB的存储和访问权限,而且SSD非常昂贵)

请注意,只有一部分值是相关的(想象一个立方体中的球体),我可以利用它来获取空间。

0 个答案:

没有答案