ルギア君の戯言

雑多な記事。

GNU screen を使って MPI プログラムをデバッグする

(追記)この方法は環境変数がリセットされちゃうのでもうちょっと工夫が必要

$ mpirun -np 2 screen -X screen gdb /bin/cat

screen のセッション内からもセッション外からも実行できるけど -X screen で「新しいウィンドウを作れ」というコマンドを実行することになるため、セッション内からなら起動したことがすぐわかる。

試してないのでうまくいくか不明だが、screen -X screen ... というコマンドを ssh (今時は使わないとは思うけど場合によっては rsh もしくは他の方法の可能性も) 越しで実行するため、リモート実行するためには、screen のセッションのソケットを nc とかでリレーする必要があるだろう。

MPICH 3.2 で確認した。(端末とのやり取り方法の仕様が異なるため)もしかしたら OpenMPI や他の MPI ではダメかもしれない。