在拥有一些在群集上使用MPI的经验之后,我最近开始在计算机上运行MPI进行一些练习。我有一个双核处理器,但对如果指定大量进程会发生什么感到好奇,令我惊讶的是它能起作用。
mpirun -np 40 ./wha
这到底是怎么回事。即使考虑到单个处理器可能产生的线程数,这似乎也不可能。
答案 0 :(得分:0)
在使用OpenMPI的情况下,如果运行的进程数大于处理器的数量(即发生超额订购时),则OpenMPI开始以降级模式运行MPI进程。在降级模式下运行意味着将其处理器分配给其他MPI进程以取得进展(即发生时间共享)。可以将mpi_yield_when_idle
设置为0,以明确地使模式变为 aggressive ,在这种情况下,MPI进程不会自动将处理器分配给其他进程。
请参见here