サブロウ丸

Sabrou-mal サブロウ丸

主にプログラミングと数学

Nsight SystemsのMPIプログラムプロファイルがなかなか終了しない

nsys (NVIDIA Nsight Systems) Nsight Systems | NVIDIA Developer でMPIプログラムのプロファイルを取得する際に、MPIプログラムが終了したにも関わらずプロファイルの作成が終了しない場合。例えば下記の表示で止まっているときは、

The target application terminated. One or more process it created re-parented.
Waiting for termination of re-parented processes.
Use the --wait option to modify this behavior.

--wait primary オプションをつけます。

e.g. nsys profile --wait primary mpirun -n 4 ./a.out


これは、MPIプログラムが終了しても、nsysがプロファイリングを終了できない状況に対応するためのオプションです。具体的には、MPIプログラムが終了すると、いくつかのプロセスがリパレンティング(再親プロセス化)されることがあり、nsysがそれらのプロセスの終了を待ち続けることがあります。このため、プロファイリングの結果がすぐに出力されない場合があります。

--wait primary オプションを使用すると、Nsight Systems は、リパレンティングされた子プロセスの終了を待たずに、主プロセス(この場合は mpirun)の終了のみを検出してプロファイリングを終了します。このオプションは、MPIプログラムなどの並列処理アプリケーションをプロファイリングする際に特に有効です。