Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] busy wait in MPI_Recv
From: Eugene Loh (eugene.loh_at_[hidden])
Date: 2010-10-19 22:54:33

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.