python – MPI信号处理

使用mpirun时,是否可以捕获正在运行的代码中的信号(例如,^ C生成的SIGINT)?

例如,我正在运行并行化的python代码.除了KeyboardInterrupt之外,我可以在运行python blah.py时自己捕获这些错误,但是在做mpirun -np 1 python blah.py时我不能.

有没有人有建议?即使找到如何在C或C编译程序中捕获信号也是一个有用的开端.

如果我向生成的Python进程发送信号,它们可以正确处理信号;然而,发送到父节点进程的信号(即,从群集上超过挂起时间,或按终端中的控制-C)将立即杀死所有内容.

解决方法:

如果你使用mpirun –nw,那么mpirun本身应该在它启动子进程后立即终止,而不是等待终止;如果这是可以接受的,那么我相信你的过程能够捕获自己的信号.

上一篇:确保所有机器上的所有代码都相同 – python mpi


下一篇:并行计算学习之用MPI实现梯形积分法