spin lock in Intel mpi

spin lock in Intel mpi

I notice that when intel mpi is idle it is taking up 100% of one of my cpu's. Since my application is more computational intensive over multi-core's than communication intensive, this is causing me large performance problems. Is there any way I can get rid of this spin lock or control it's polling rate, even at the loss of latency?

4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hi David,

The Intel MPI Library provides a way to control the value of the spin count when polling the fabrics on a cluster by using the I_MPI_SPIN_COUNT env variable. Its argument should be the number of times the polling loop will spin before freeing the processors. Generally, a smaller value with release the processor more frequently.

The default settings are looping 1 time for the sockets/shared memory devices and 250 times when using RDMA-based devices. You can try changing the value and see if it makes a difference for your application. More information is in the Intel MPI Library Reference Manual in the /doc directory.


Gergana Slavova
Technical Consulting Engineer
Intel® Cluster Tools
E-mail: gergana.s.slavova_at_intel.com

Hi Gergana,
I played around with I_MPI_SPIN_COUNT already and it doesn't seem to make a difference. I've also run my application under MPICH2 and MVAPICH2 without this problem.


Hi David,

Please try the latest Intel MPI Library 3.1 with the I_MPI_WAIT_MODE environment variable set to enable. It shouldwork for following the sock, shm, or ssmdevices. Let us know how the suggestion help.

Best regards, Andrey

Leave a Comment

Please sign in to add a comment. Not a member? Join today