始めに
どうやらいくつかの CPU で、Windows10/11 を使って Radioss を "-np" 付きで流した場合、複数のプロセスが、一つ(もしくは少数の)コアに集中して、計算が異常に遅くなることがあるようです。
本稿執筆時の私の認識では、Radioss のバグではありません。Radioss は複数のプロセスの MPI 計算を Interl MPI に委託するだけ(どのコアを使うとかは Radioss の指示ではない) で、Interl MPI がどのコアを使いたいか Windows10/11 に申し入れるのですが、どうも Windows10/11 がこの申し出を無視しているように見えております。
タスクマネージャを見てみましょう
私の CPU では発生しない(少なくとも今までは発生していない)ので、ポンチ絵となりますが、このように、例えば "-np 8" として、すべてのコアが均等に負荷の高い状況になってほしいのに、全て 1個のコアに載るようなことが、起きます。
環境変数 I_MPI_DEBUG=5 で Intel MPI が要求しているコア配置を見てみましょう
こちらの記事のコメント欄を参照ください。
こういう感じで実行すると、
こういう感じで、 Interl MPI がどういう感じでコアを使ってほしいと Windows10/11 に要求しているのか分かります。
おかしいことが起きる環境では、この Intel MPI の要求と、実際のタスクマネージャで見る負荷の割り当てが、全く一致しないということが起きます。
試してみるべき環境変数
変数: KMP_AFFINITY
値: disabled
必ず修正するのかどうかは分かりませんが、うまく負荷を分散してくれるようになって、普通に流れるようになった、という報告を受けています(くどいですが、ここをやっているのは Radioss ではないですので、私は何も断言はできないです)。