私は集中的に実行するためにメモリが不足しているMPI並列化を使用したFortranコードを扱っています。シミュレーション開始時に必要なメモリのほとんどすべてを割り当てています。サブルーチンの静的メモリ割り当ては通常小さいですが、これらのサブルーチンのためにメモリが使い果たされた場合、シミュレーションの早い段階で発生します。MPI内部バッファメモリの問題
Insufficient memory to allocate Fortran RTL message buffer, message #174 = hex 000000ae.
私は考えることができる唯一のことは、私のMPI呼び出しは、私が最初に事前に割り当てすることはできませんメモリを使用していることである:私の問題は、これまでのシミュレーションに、私のようなメモリエラーに実行していますということですシミュレーションのシミュレーションが実行されている間に私は主にMPI_Allreduce、MPI_Alltoall、MPI_Alltoallvを使用していますが、大量のデータを渡すこともあります。メモリの問題はMPIによって作成された内部バッファの結果でしょうか?このような驚きのメモリの問題を防ぐにはどうすればいいですか?シミュレーション中にこの内部バッファが大きくなることはありますか?
私はValgrindを見てきましたが、迷惑なMPIの警告の他に、私は他のメモリの問題も見ていません。
メモリの問題をMPI_AlltoallとMPI_Alltoallvを実行するサブルーチンに絞りました。また、1つのノード(16プロセッサ)を使用してもメモリの問題は発生しませんが、2つ以上のノードを使用するとメモリの問題は明らかです。どのようにこれが可能であるか考えていますか?私にとっては、この問題はおそらく私のコーディングの欠陥ではないようですが、私は間違っていました。 – Higgy