Intel® MPI Library supports asynchronous progress threads that allow you to manage communication in parallel with application computation and, as a result, achieve better communication/computation overlapping.
Asynchronous progress has a full support for MPI point-to-point operations, blocking collectives, and a partial support for non-blocking collectives (
To enable asynchronous progress, pass 1 to the
environment variable. You can define the number of asynchronous progress threads by setting the
environment variable. The
variable sets the MPI info object key that is used to define the progress
for a communicator.
environment variable allows you to control the pinning of the asynchronous progress threads. In case of N progress threads per process, the first N logical processors from the list will be assigned to the threads of the first local process, while the next N logical processors - to the second local process and so on.
For example, If the thread affinity is
with 2 progress threads per process and 2 processes per node, then the progress threads of the first local process are pinned to logical processors
, while the progress threads of the second local process are pinned to processors