我的 mpi 应用程序有一个信号处理程序来捕获 ctrl-C 或 ctrl-break 一个 Windows,当这个应用程序在 cmd 窗口中串行运行时,它可以工作。它被拦截,然后代码执行最后一个输出,代码优雅地退出。
但是,当我与例如“mpiexec -np 2 myparapp.exe”并行运行它并按 ctrl-C 或 ctrl-break 时,信号似乎无法到达我的应用程序,因为它被突然终止。我需要做一些特别的事情吗,比如确保我的信号处理程序在代码中的特定位置注册?
我正在使用 MSMPI,据我所知,它是 mpich 的一个分支。