如何并行化写入h5文件的数据?

时间:2019-07-17 11:08:42

标签: python hdf5 h5py mpi4py

我对h5py/mpi4py很陌生。我正在尝试将某些数据写入单个.h5文件,以便如果将写入rank == 0个正测试数据(正数据集)值和rank == 1个负测试数据,则将有2个进程(负数据集)值将被写入。但是当我尝试使用

mpiexec -n 2 python parallel_exec.py

我要

  

IOError:无法创建文件(无法锁定文件,errno = 11,错误消息=“资源暂时不可用”)。

有人可以帮我吗

    from mpi4py import MPI
    import h5py

    rank = MPI.COMM_WORLD.rank
    f = h5py.File('parallel.hdf5', 'w')
    f.create_dataset('face_val', (num_pos_imgs + num_neg_imgs, 1), np.int)
    f.create_dataset('eye_val', (num_pos_imgs + num_neg_imgs, 2), np.float32)

    hdf5_index = 0
    if rank == 0:
      for i in enumerate(negative_images):
        f['face_val'][hdf5_index, ...] = 0
        f['eye_val'][hdf5_index, ...] = (magick_number, magick_number)
        hdf5_index += 1
    elif rank == 1:
      for i in enumerate(positive_images):
        f['face_val'][hdf5_index, ...] = 1
        f['eye_val'][hdf5_index, ...] = (magick_number_positive, magick_number_positive)
        hdf5_index += 1

预期:

在2个进程中运行并行hdf5,并输出生成的.hdf5文件

知道:

  

IOError:无法创建文件(无法锁定文件,errno = 11,错误消息=“资源暂时不可用”)

0 个答案:

没有答案