gpt4 book ai didi

python - MPI 信号处理

转载 作者:太空狗 更新时间:2023-10-30 01:30:40 29 4
gpt4 key购买 nike

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

例如,我正在运行并行化的 Python 代码。在单独运行 python blah.py 时,我可以 except KeyboardInterrupt 捕获这些错误,但在执行 mpirun -np 1 python blah.py.

有人有什么建议吗?即使找到如何在 C 或 C++ 编译程序中捕获信号也会是一个有用的开始。

如果我向派生的 Python 进程发送信号,它们可以正确处理信号;但是,发送到父 orterun 进程的信号(即超过集群上的 wall time,或在终端中按 control-C)将立即终止一切。

最佳答案

我认为这确实取决于实现。

SIGINT、SIGUSR1、SIGUSR2 将绕过进程。

I_MPI_JOB_SIGNAL_PROPAGATIONI_MPI_JOB_TIMEOUT_SIGNAL 可以设置发送信号。

另一件值得注意的事情:对于许多 python 脚本,它们会通过 cython 调用其他库或代码,如果 SIGUSR1 被子进程捕获,则可能会发生一些意外情况。

关于python - MPI 信号处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1145741/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com