gpt4 book ai didi

python - 我们可以为 python 类文件对象禁用 h5py 文件锁定吗?

转载 作者:太空宇宙 更新时间:2023-11-03 11:58:02 25 4
gpt4 key购买 nike

当使用 h5py 打开 HDF5 文件时,您可以传入一个类似 python 文件的对象。我已经这样做了,其中类文件对象是我自己的基于网络的传输层的自定义实现。

效果很好,我可以在高延迟传输层上分割大型 HDF5 文件。然而,HDF5 似乎提供了自己的文件锁定功能,因此如果您在同一进程(线程模型)中以只读方式打开多个文件,它仍然只会有效地连续运行操作。

HDF5 中有支持并行操作的驱动程序,例如 h5py.File(f, driver='mpio'),但这似乎不适用于 python 类文件对象使用 h5py.File(f, driver='fileobj')

我看到的唯一解决方案是使用多处理。然而,可扩展性非常有限,由于开销,您实际上只能打开 10 个进程。我的传输层使用 asyncio 并且能够在 1,000 或 10,000 的规模上进行并行操作,这使我能够构建一个更长的慢速文件读取操作队列,从而提高我的总吞吐量。

当我并行排队 10k IO 操作(需要 50GB 的 RAM 来处理请求,可接受吞吐量的权衡)。

Is there any way I can disable the h5py file locking when using driver='fileobj'?

最佳答案

您只需将环境变量 HDF5_USE_FILE_LOCKING 的值设置为 FALSE

例子如下:

在 Linux 或 MacOS 中通过终端:export HDF5_USE_FILE_LOCKING=FALSE

在 Windows 中通过命令提示符 (CMD):set HDF5_USE_FILE_LOCKING=FALSE

关于python - 我们可以为 python 类文件对象禁用 h5py 文件锁定吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57310333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com