连接大量HDF5文件

And*_*nca 9 scientific-computing hdf5 dataset

我有大约500个HDF5文件,每个大约1.5 GB.

每个文件都具有相同的精确结构,即7个复合(int,double,double)数据集和可变数量的样本.

现在我想通过连接每个数据集来连接所有这些文件,以便最后我有一个包含7个数据集的750 GB文件.

目前我正在运行一个h5py脚本:

  • 使用无限制的最大数据集创建HDF5文件
  • 按顺序打开所有文件
  • 检查样本数量(因为它是可变的)
  • 调整全局文件的大小
  • 追加数据

这显然需要几个小时,你有关于改善这个的建议吗?

我正在开发一个集群,所以我可以并行使用HDF5,但是我在C编程中不够自己实现一些东西,我需要一个已经编写过的工具.

And*_*nca 9

我发现大部分时间花在调整文件大小上,因为我在每一步调整大小,所以我现在首先要通过所有文件并获取它们的长度(它是可变的).

然后我创建全局h5文件,将总长度设置为所有文件的总和.

只有在这个阶段之后,我才用所有小文件中的数据填充h5文件.

现在每个文件大约需要10秒钟,所以它需要不到2个小时,而在它需要更多时间之前.