title: Prevent MPI from busy looping
body: <p>I have an MPI program which oversubscribes/overcommits its processors. That is: there are many more processes than processors.</p>
  
  <p>Only a few of these processes are active at a given time, though, so there shouldn't be contention for computational resources.</p>
  
  <p>But, much like the flock of seagulls from <em>Finding Nemo</em>, when those processes are waiting for communication they're all busy-looping, asking "Mine? Mine? Mine?"</p>
  
  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="https://i.stack.imgur.com/MbHC3m.jpg" rel="noreferrer"><img src="https://i.stack.imgur.com/MbHC3m.jpg" alt="Nemo Seagulls"></a></p>
  
  <p>I am using both Intel MPI and OpenMPI (for different machines). How can I convince them <strong>both</strong> not to busy loop?</p>
  
  <p>My quick and dirty solution has been to use <code>MPI_Iprobe</code> in a loop with a sleep command (see <a href="https://stackoverflow.com/q/37062120/752843">here</a>).</p>