我想使用MPI IO来写文件。 进程处于while循环中,它调用一个生成随机数据量的函数。我想将此数据写入单个文件。 我怎么能做到这一点?
答案 0 :(得分:0)
它可能会对您有所帮助:
但也许你需要传递一个包含每个进程起点的变量..
答案 1 :(得分:0)
在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);