Brian Budge wrote:

Hi all -

I just ran a small test to find out the overhead of an MPI_Recv call
when no communication is occurring.   It seems quite high.  I noticed
during my google excursions that openmpi does busy waiting.  I also
noticed that the option to -mca mpi_yield_when_idle seems not to help
much (in fact, turning on the yield seems only to slow down the
program).  What is the best way to reduce this polling cost during
low-communication invervals?  Should I write my own recv loop that
sleeps for short periods?  I don't want to go write someone that is
possibly already done much better in the library :)
I think this has been discussed a variety of times before on this list.

Yes, OMPI does busy wait.

Turning on the MCA yield parameter can help some. There will still be a load, but one that defers somewhat to other loads. In any case, even with yield, a wait is still relatively intrusive.

You might have some luck writing something like this yourself, particularly if you know you'll be idle long periods.

Reply via email to