多年来我一直在使用 HDF5,但随着数据集大小的增长,我开始遇到此处列出的相同问题
http://cyrille.rossant.net/moving-away-hdf5/
你能给我指点像 HDF5 这样的格式吗 - 对并行写入的良好支持 - 支持对巨大矩阵的分块访问
我的典型用例是一个 100k x 100k 整数矩阵。从逻辑的角度来看,我想将它作为一个完整的文件,但我需要用并行工作者逐块编写它。
多年来我一直在使用 HDF5,但随着数据集大小的增长,我开始遇到此处列出的相同问题
http://cyrille.rossant.net/moving-away-hdf5/
你能给我指点像 HDF5 这样的格式吗 - 对并行写入的良好支持 - 支持对巨大矩阵的分块访问
我的典型用例是一个 100k x 100k 整数矩阵。从逻辑的角度来看,我想将它作为一个完整的文件,但我需要用并行工作者逐块编写它。
在某种程度上,HDF5 本身就是一个文件系统。通过引入 B 树和它管理块的方式,它复制了文件系统的功能。当你运行你的代码时,你可能是在一个具有经过验证且可扩展的文件系统的操作系统上运行它。因此,我建议使用原始文件访问或 MPI-IO 将您的数字原始数据写入单个文件,并将元数据(字节序、大小、属性等)写入单独的 JSON 或 XML 文件。如果您有多个数据集,您可以将它们组织到一个目录或目录层次结构中。当您想要分发数据集时,只需将其打包到 ZIP 文件中。
唯一的缺点是您必须自己处理Endianness,但这并不难。
有关如何做到这一点的灵感,请参阅Dragly 等。人。“A. 实验目录结构(Exdir):在不引入新文件格式的情况下替代 HDF5”前面。神经信息学,2018,12。