を使用する場合、実行中のコードでmpirun
シグナル(たとえば、によって生成されたSIGINT)をキャッチすることは可能ですか?^C
たとえば、並列化されたPythonコードを実行しています。except KeyboardInterrupt
単独で実行している場合はこれらのエラーをキャッチできますが、実行している場合はキャッチpython blah.py
できませんmpirun -np 1 python blah.py
。
誰か提案がありますか?CまたはC++でコンパイルされたプログラムでシグナルをキャッチする方法を見つけることでさえ、役立つスタートになるでしょう。
生成されたPythonプロセスにシグナルを送信すると、それらはシグナルを適切に処理できます。ただし、親orterun
プロセスに送信された信号(つまり、クラスターで壁時間を超過したり、端末でcontrol-Cを押したりした場合)は、すべてを即座に強制終了します。