Is it natural that an MPI process consumes a CPU (up to 100% of its utilization) under MS Windows while waiting with MPI_RECV?
I think that it should be in the sleep state before it receives a signal from the matching MPI_SEND.
I need some experts' comment on this.
- YoungChul Cho
You have environment variables available in Intel MPI to control the time for which the receive wait loop spins before sleeping. This feature may not be present in the Microsoft or MPICH2 implementations, as some of their experts have been vociferous about stating that wait loops should never be allowed to sleep, as they use spin wait to promote core locality as well as minimizing latency upon completion of receive. The long spin wait may also help in some performance investigations.
If your cluster consists of single CPU nodes, or your application doesn't depend on data locality for performance, you might prefer a fairly short spin wait.