3

私はboost::mpi、OpenMPIを使用しています。boost::mpi::communicator::recv (ブロッキング バージョン) は、Linux シグナルによって中断されません。SIGTERM シグナルを使用してプログラムを正しく終了するにはどうすればよいですか?

4

1 に答える 1

0

問題は解決されました。 1. マスターを除くすべてのノードが信号を無視します。2. マスター ノードは、1 つのスレッドを除いて信号を無視します (このスレッドは POSIX 一時停止関数を呼び出します)。一時停止が中断されると、mpi の「停止」メッセージがすべてのノードに送信されます。したがって、すべてのノードが作業を停止します。

于 2015-12-21T12:29:00.297 に答える