引自HDF5 Hyperslab doc - :
块数组确定从中选择的元素块的大小 数据空间。
该示例显示在2x2数据集中,参数设置为以下 - :
start offset is specified as [1,1], stride is [4,4], count is [3,7], and block is [2,2]
将导致21个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维中设置,那么这将如何实现呢?
答案 0 :(得分:0)
通过H5Sselect_hypserslab()创建的hyperslab选择允许您创建由重复元素块定义的区域。
这在HDF5用户指南found here的7.4.2.2节中有所描述(向下滚动到7.4.2.2)。 H5Sselect_hyperslab()参考手册条目也可能有用。
以下是UG的图表:
以下是该图中使用的值:
注意重复单元是一个3x2元素块。所以,是的,在你的情况下你会得到21个2x2的块。在一个维度上将存在三个块的网格,在另一个维度中将存在七个块,每个块在每个方向上间隔开4个元素。第一个块将偏移1,1。
关于这个API调用最令人困惑的事情是,其中三个参数以元素为单位,而count则以块为单位。
编辑:也许这会使得块和计数的使用更加明显......
答案 1 :(得分:-2)
HDFS默认块大小为64 mb,可以根据我们的要求增加.1映射器一次处理1个块。