您能否在MPI中动态询问其他处理器?

时间:2011-07-24 13:29:22

标签: c mpi

使用C中的MPI,您可以执行以下操作来运行程序:

mpirun -np 5 program

其中5是要使用的处理器数,program是在这些处理器上运行的程序。是否可以请求x处理器,但在程序运行时,如果您决定需要y处理器(假设为y>x),您是否可以在不重新启动程序的情况下请求更多处理器?

如果答案是肯定的,那你怎么做?如果不是那么为什么不呢?

非常感谢。

1 个答案:

答案 0 :(得分:3)

这是可能的;但这不是微不足道的。应用程序需要编码以支持此功能。从根本上说,存在mpi提供各种全局通信和同步原语的问题,并且在添加新的并行性时不清楚如何处理此类操作 - 毕竟,您不希望新进程无法确定地死锁或使其他进程崩溃。 / p>

Here's some documentation on IBM's site - 任何MPI2实现都应符合相同的大纲。 Jonathan指出MPI规范本身包括a pretty good example of doing this for a master-worker sort of problem