私は、そのプロセッサをオーバーサブスクライブ/オーバーコミットするMPIプログラムを持っています。すなわち、プロセッサよりも多くのプロセスがあります。MPIのビジーループの防止
ただし、これらのプロセスのうち、特定の時点でアクティブになっているのはほんのわずかなので、計算リソースの競合はないはずです。
しかし、これらのプロセスがコミュニケーションを待っているときには、「私のものか?私のものか?」と聞いて、ニョウのカモメの群れと同じです。
私は(異なるマシン用)インテルMPIとOpenMPIの両方を使用しています。 両方ともはビジーループではないと私はどのように納得できますか?
私は速くて汚い解決策として、MPI_Iprobe
をループでsleepコマンド(here参照)を使用していました。
すべてのプロセスを単一のホストで実行していますか? –
いいえ、それらは複数のホストに分散されている可能性があります。 – Richard
どのような種類のネットワークがホストを接続していますか? –