使用C中的MPI,您可以执行以下操作来运行程序:
mpirun -np 5 program
其中5
是要使用的处理器数,program
是在这些处理器上运行的程序。是否可以请求x
处理器,但在程序运行时,如果您决定需要y
处理器(假设为y>x
),您是否可以在不重新启动程序的情况下请求更多处理器?
如果答案是肯定的,那你怎么做?如果不是那么为什么不呢?
非常感谢。
答案 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。