【发布时间】:2014-10-15 09:56:32
【问题描述】:
我想使用 MPI IO 来写入文件。 这些进程处于一个while循环中,它调用一个生成随机数据量的函数。我想将此数据写入单个文件。 我怎样才能做到这一点?
【问题讨论】:
我想使用 MPI IO 来写入文件。 这些进程处于一个while循环中,它调用一个生成随机数据量的函数。我想将此数据写入单个文件。 我怎样才能做到这一点?
【问题讨论】:
【讨论】:
在 while 循环的每次迭代中,每个进程都知道将写入多少数据。使用 MPI_SCAN 共享该数据,然后使用 MPI_File_write_at_all 集体写入:
incr = generate_random_data();
MPI_Scan(&incr, &new_offset, 1, MPI_LONG_LONG_INT,
MPI_SUM, MPI_COMM_WORLD);
new_offset -= incr;
ret = MPI_File_write_at_all(mpi_fh, new_offset, buf, count,
datatype, status);
【讨论】: