MPI-IOはなぜ必要なのかをしっかり調べてみた

using-MPI2というMPI2系の書籍を手に入れたので、MPI-IOを使うべき理由をまとめてみました。出力の話メインです。

ハードウェア的な問題

  • 並列計算を行うマシンのほとんどが一つのプロセスを使ったIOしかサポートしていない

ソフトウェア的な問題

  • 並列のIOをサポートするIOライブラリが少ない
  • MPI-IOでファイル出力をすることによって、計算結果のファイルを一つにまとめることができるため、外部のプログラムが出力結果を取り扱う際に使いやすい
  • MPI-IOを用いることでパフォーマンスが高まる場合がある
    • MPI-IOを使用しない場合は分割されたデータをそれぞれのプロセスが出力する必要がある。そのため、一度の書き込み操作で取り扱えるデータのサイズが小さくなり、ディスクへのアクセスが増えることによってパフォーマンスが落ちることがある。一方でMPI-IOを用いると複数のプロセスがもつデータを集約することができ、大きなデータを取り扱うことでディスクへのアクセス回数が減りパフォーマンスの向上につながると考えられる。

まとめ

パフォーマンスに直接関与するのはディスクへのアクセスの回数のようです。

また、今まではマスターのプロセスにデータを集約し書き込みを行うことによってディスクアクセスを減らす工夫をしていましたが、マスターのプロセスが働いている間にほかのプロセスが遊んでいる場合もあるのでMPI-IOは書き込み中に遊んでいるプロセスを減らすのに役立ちそうです。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to top