コンパイルして実行する MPI プログラムがありますが、ステップ実行して、異常が発生していないことを確認したいと思います。理想的には、GDB を特定のプロセスに簡単に接続できる方法が欲しいのですが、それが可能かどうか、またその方法がわかりません。別の方法としては、各プロセスがデバッグ出力を個別のログ ファイルに書き込むようにする方法がありますが、これではデバッガーと同じ自由度は得られません。
もっと良いアプローチはありますか? MPI プログラムをどのようにデバッグしますか?
ベストアンサー1
gdbはとても便利だと感じています。
mpirun -np <NP> xterm -e gdb ./program
これはxtermウィンドウを起動し、そこで次の操作を実行できます。
run <arg1> <arg2> ... <argN>
通常は問題なく動作します
次のコマンドを使用して、これらのコマンドをまとめてパッケージ化することもできます。
mpirun -n <NP> xterm -hold -e gdb -ex run --args ./program [arg1] [arg2] [...]