0

MPI IO を使用してファイルを書き込みたい。プロセスはwhileループにあり、ランダムな量のデータを生成する関数を呼び出します。このデータを単一のファイルに書き込みたい。どうすればこれを達成できますか?

4

2 に答える 2

0

それはあなたを助けるかもしれません:

http://social.microsoft.com/Forums/en-US/47b99479-37d9-43a4-b1e3-90efd3d52c0a/can-different-mpi-processes-write-data-in-one-file-with-different-offset?フォーラム=windowshpcmpi

しかし、すべてのプロセスの開始点を含む変数を渡す必要があるかもしれません..

于 2014-03-17T12:21:19.527 に答える
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);
于 2014-10-15T01:56:32.317 に答える