在基于MPI的并行编程中执行代码期间改变处理器的数量.

zah*_*lah 1 parallel-processing fortran mpi

我在FORTRAN中使用基于MPI的并行编程.要在例如10个处理器上运行程序,我使用标准MPIs命令

mpirun -n 10 prog_name

因此程序将从头到尾在10个处理器上执行,即在执行代码期间处理器的数量是恒定的.

我的问题是,是否有可能在程序执行期间改变处理器的数量,例如以2个处理器开始,然后在一些标准后我想将处理器的数量改为4然后改为6到10到20,依此类推.

提前致谢.

Hig*_*ark 8

MPI-2支持(大约)这种操作,Google支持文档mpi_comm_spawn和相关例程.我写的大致是因为严格来说MPI只关注流程而不是处理器.还要研究例程mpi_comm_get_attr和预定义常量的文档,这些常量mpi_universe_size使程序和运行时环境之间能够进行通信,以确定可用的进程数.

您可能会发现并行计算机上的作业管理系统不允许程序在运行时获取更多处理器.

我希望你要避免的是,在你的工作开始时抓住10个处理器,10个进程,然后产生另外20个进程在这10个处理器上运行.