HDF5的块大小是多少?

时间:2017-10-03 07:15:30

标签: hdf5

引自HDF5 Hyperslab doc - :

  

块数组确定从中选择的元素块的大小   数据空间。

该示例显示在2x2数据集中,参数设置为以下 - :

start offset is specified as [1,1], stride is [4,4], count is [3,7], and block is [2,2]

将导致2​​1个2x2块。选择将是(1,1), (5,1), (9,1), (1,5), (5,5)我可以理解,因为起点是(1,1),选择从那一点开始,因为步幅是(4,4)它在每个维度中移动4,并且count是(3,7)它在X方向上增加3倍4,在Y方向上增加7倍4即ie。在其相应的维度。

但我不明白的是块大小在做什么?这是否意味着我会得到21个2x2维块?这意味着每个块包含4个元素 ,但计数已经在3维中设置,那么这将如何实现呢?

2 个答案:

答案 0 :(得分:0)

通过H5Sselect_hypserslab()创建的hyperslab选择允许您创建由重复元素块定义的区域。

这在HDF5用户指南found here的7.4.2.2节中有所描述(向下滚动到7.4.2.2)。 H5Sselect_hyperslab()参考手册条目也可能有用。

以下是UG的图表:

enter image description here

以下是该图中使用的值:

  • offset =(0,1)
  • stride =(4,3)
  • count =(2,4)
  • block =(3,2)

注意重复单元是一个3x2元素块。所以,是的,在你的情况下你会得到21个2x2的块。在一个维度上将存在三个块的网格,在另一个维度中将存在七个块,每个块在每个方向上间隔开4个元素。第一个块将偏移1,1。

关于这个API调用最令人困惑的事情是,其中三个参数以元素为单位,而count则以块为单位。

编辑:也许这会使得块和计数的使用更加明显......

enter image description here

答案 1 :(得分:-2)

HDFS默认块大小为64 mb,可以根据我们的要求增加.1映射器一次处理1个块。