When writing a large dataset to a file using parallel HDF5 via h5py and mpi4py (and quite possible also when using HDF5 and MPI directly from C), I get the following error if using the mpio driver with a single process:
OSError: Can't prepare for writing data (Can't convert from size to size_i)
It seems that the limit on the allowed dataset is 4GB, at least when the content is double arrays. Larger datasets work fine if using more processes to share the workload, or if done on a single CPU without the mpio driver.
Why is this? Are size
and size_i
pointer types, and can the former not hold addresses larger than what corresponds to 4GB double[]
? This error probably won't be a serious problem for me in the end, because I will use more than 1 process in general, but I would like my code to work even using just a single process.