【发布时间】:2018-12-14 04:51:20
【问题描述】:
我正在尝试使用并行 h5py 为每个进程创建一个独立的组,并用一些数据填充每个组。发生的情况是只有一个组被创建并填充了数据。这是程序:
from mpi4py import MPI
import h5py
rank = MPI.COMM_WORLD.Get_rank()
f = h5py.File('parallel_test.hdf5', 'w', driver='mpio', comm=MPI.COMM_WORLD)
data = range(1000)
dset = f.create_dataset(str(rank), data=data)
f.close()
对这里出了什么问题有什么想法吗?
非常感谢
【问题讨论】:
-
每个进程的
rank是否不同?从mp教程看来,rank区分了发送者和接收者进程,或类似的东西。文件中dataset的名称是什么? -
group是什么意思?如果您的意思是 HDF5 Group,那么它们必须由单个任务创建和分配,然后您可以使用并行数据填充它们。 -
@hpaulj 是
rank是每个进程的标识符。例如,rank 0将创建 HDF5 组0并将其数据放入其中,其余部分也是如此过程 -
对文件结构的所有操作必须集中执行。您必须在任何地方创建数据集。然后,您可以分别填写它们。
标签: io mpi hdf5 h5py parallel-io