長い背景
心臓電気生理学シミュレーション用のコードの並列化に取り組んでいます。ユーザーは組み込みのスクリプト言語を使用して独自のシミュレーションを指定できるため、通信と計算のトレードオフを管理する方法を知る方法がありません。これに対抗するために、私は一種のランタイム プロファイラーを作成しています。これは、実行するシミュレーションと動作する必要があるハードウェア環境を確認した後で、ドメイン分割の処理方法を決定します。
私の質問はこれです:
MPI I/O は舞台裏でどのように実装されていますか? 各プロセスは実際に他のノード上の単一のファイルに書き込んでいますか? それとも、各プロセスがいくつかのスパース ファイルに書き込んでいて、ファイルが閉じられたときにそれらのファイルが再び結合されるのでしょうか?
これを知ることで、I/O 操作を通信と計算のどちらと見なすかを決定し、それに応じてバランスを調整することができます…</p>
あなたが提供できる洞察を前もって感謝します。
ロス