Intel® MPI Library
Get help with building, analyzing, optimizing, and scaling high-performance computing (HPC) applications.

spin lock in Intel mpi

David_M_13
Beginner
1,286 Views
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?

0 Kudos
3 Replies
Gergana_S_Intel
Employee
1,286 Views

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.

Thanks,
~Gergana

0 Kudos
David_M_13
Beginner
1,286 Views
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.

Regards,
David
0 Kudos
Andrey_D_Intel
Employee
1,286 Views

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

0 Kudos
Reply