gpt4 book ai didi

parallel-processing - 在 FORTRAN/MPI/HDF5 ( 1.10.1 ) 中使用 h5fopen_f 打开文件时出错

转载 作者:行者123 更新时间:2023-12-01 03:18:08 24 4
gpt4 key购买 nike

我正在使用使用 HDF5 (1. 10 .1) 的 Fortran 代码。在某些时候,会调用使用 h5fopen_f 打开文件。 :

H5FileName = "+hdf5/Temperature_00000_00001.h5"
CALL h5fopen_f(H5FileName, H5F_ACC_RDWR_F, file, hdferr)
Scalardataset = 'Temperature_00001_0000'
call h5ltget_dataset_info_f(file, Scalardataset, dimstmp, type_class, type_size, hdferr)
call h5fclose_f(file,hdferr)

这给了我一个错误:
HDF5-DIAG: Error detected in HDF5 (1.10.1) MPI-process 0:
#000: H5F.c line 586 in H5Fopen(): unable to open file
major: File accessibilty
minor: Unable to open file
#001: H5Fint.c line 1305 in H5F_open(): unable to lock the file
major: File accessibilty
minor: Unable to open file
#002: H5FD.c line 1839 in H5FD_lock(): driver lock request failed
major: Virtual File Layer
minor: Can't update object
#003: H5FDsec2.c line 940 in H5FD_sec2_lock(): unable to lock file, errno = 11, error message = 'Resource temporarily unavailable'
major: File accessibilty
minor: Bad file ID accessed

我已经检查过该文件是否存在,它应该在哪里,并且我有正确的权限。此外,当我只使用一个进程时,代码工作正常,当我使用多个进程时,其中一个进程能够打开文件( err=0 ),但其余进程不能( err=-1 )。最后,我在其他地方安装了相同的代码,它工作得很好(版本 1. 8 .14)。

这会是版本的问题吗?

最佳答案

我找到了两种解决方法:

  • 使用 H5F_ACC_RDONLY_F 以只读方式打开文件而不是 H5F_ACC_RDWR_F (这对我来说很好,因为我不需要写。
  • 使用 HDF5 1.8.14 重新编译所有内容.我猜读和写权限在 1.10.x 版中比在 1.8.x 版中更严格。

  • 理想情况下,我希望能够使用 HDF5 的更新版本。连同 H5F_ACC_RDWR_F ,但现在它对我有用。

    关于parallel-processing - 在 FORTRAN/MPI/HDF5 ( 1.10.1 ) 中使用 h5fopen_f 打开文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47696840/

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