首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用HDF5和MPI从Python中使用1个进程编写/读取大型文件

使用HDF5和MPI从Python中使用1个进程编写/读取大型文件
EN

Stack Overflow用户
提问于 2015-01-16 13:17:31
回答 1查看 1.3K关注 0票数 1

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

OSError:无法为写入数据做准备(不能从大小转换为size_i)

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-09 17:09:15

我最近也面临着同样的问题,而挖掘也让我意识到了这一点:

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

其中描述了问题和解决办法。

请看一下。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27984813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档