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.