python - 使用 HDF5 和 MPI 使用 1 个进程从 Python 写入/读取大文件

标签 python mpi hdf5 h5py mpi4py

当通过 h5py 和 mpi4py 使用并行 HDF5 将大型数据集写入文件时(也很可能直接从 C 使用 HDF5 和 MPI 时),如果在单个进程中使用 mpio 驱动程序,我会收到以下错误:

OSError: Can't prepare for writing data (Can't convert from size to size_i)

似乎允许的数据集的限制是 4GB,至少当内容是双数组时。如果使用更多进程来分担工作负载,或者在没有 mpio 驱动程序的单个 CPU 上完成,则较大的数据集可以正常工作。

这是为什么呢? sizesize_i 是指针类型,前者不能容纳大于 4GB double[] 对应的地址吗?这个错误最终对我来说可能不会是一个严重的问题,因为我通常会使用多个进程,但我希望我的代码即使只使用一个进程也能工作。

最佳答案

我最近遇到了同样的问题,经过挖掘,我发现了这一点:

https://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.1/src/unpacked/src/H5FDmpio.c

您将在其中看到引发错误的位置。简而言之,当数组大小(以字节为单位)大于 2GB 时就会出现错误。

进一步挖掘后,我发现这里: https://www.hdfgroup.org/hdf5-quest.html#p2gb

描述问题和解决方法的地方。

请看一下。

关于python - 使用 HDF5 和 MPI 使用 1 个进程从 Python 写入/读取大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27984813/

相关文章:

python - 为什么图像字段访问器的第一次和第二次调用的返回值不同?

python - 将程序中的 Python Pandas Dataframe 输出合并到一个 Dataframe 中

c++ - MPI - 将 std::vector<string> 发送到另一组进程

python - 使用多处理将数据写入hdf文件

numpy - 如何连接两个 hdf5 格式的 numpy 数组?

python - 求和运算的本地并行计算

python :How to generate a power law graph

c++ - MPI 如何决定其排名大小

c - 使用 MPI_File_read_at 时出现段错误

mongodb - 存储和查询气象数据大数据集的更好方法是什么