防止MPI忙于循环

问题描述 投票:8回答:1

我有一个MPI程序,它过度订阅/过度使用其处理器。那就是:进程多于处理器。

但是,在给定时间内,这些进程中只有少数是活动的,因此不应该争用计算资源。

但是,就像来自海底总动员的海鸥一样,当这些过程等待通信时,他们都在忙着循环,问“我的?我的?我的?”?

Nemo Seagulls

我正在使用英特尔MPI和OpenMPI(适用于不同的机器)。我如何说服他们不要忙碌循环?

我的快速而肮脏的解决方案是在一个带睡眠命令的循环中使用MPI_Iprobe(参见here)。

c++ mpi openmpi busy-waiting intel-mpi
1个回答
3
投票

这已经有一段时间了,但是这个post可能有你想要的答案。 (tl;如果你使用的是OpenMPI,博士将--mca mpi_yield_when_idle 1作为参数传递给mpirun

除此之外,如果您的MPI进程在MPI障碍处等待,您可以设置I_MPI_WAIT_MODE = 1以防止INTEL的MPI中的忙循环。对于OpenMPI,请参阅链接的帖子。

© www.soinside.com 2019 - 2024. All rights reserved.