MPI IO在不知道偏移时写入文件

时间:2014-03-17 11:16:00

标签: mpi mpi-io

我想使用MPI IO来写文件。 进程处于while循环中,它调用一个生成随机数据量的函数。我想将此数据写入单个文件。 我怎么能做到这一点?

2 个答案:

答案 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);