Developer Reference

Environment Variables for Asynchronous Progress Control

This feature is supported for the
release_mt
and
debug_mt
library configurations only. To specify the configuration, run the following command:
$ source
<installdir>
/bin/vars.sh release_mt

I_MPI_ASYNC_PROGRESS

Control the usage of progress threads.
Syntax
I_MPI_ASYNC_PROGRESS=<arg>
Arguments
<arg>
Binary indicator
disable | no | off | 0
Disable asynchronous progress threads for each rank. This is the default value.
enable | yes | on | 1
Enable asynchronous progress threads.
Description
Set this environment variable to enable asynchronous progress. If disabled, the
I_MPI_ASYNC_PROGRESS_*
knobs are ignored.

I_MPI_ASYNC_PROGRESS_THREADS

Control the number of asynchronous progress threads.
Syntax
I_MPI_ASYNC_PROGRESS_THREADS=<arg>
Arguments
<nthreads>
Define the number of progress threads. The default value is 1.
Description
Set this environment variable to control the number of asynchronous progress threads for each rank.

I_MPI_ASYNC_PROGRESS_PIN

Control the asynchronous progress threads pinning.
Syntax
I_MPI_ASYNC_PROGRESS_PIN=<arg>
Arguments
<arg>
Comma-separated list of logical processors
<CPU list>
Pin all progress threads of local processes to the listed CPUs. By default, N progress threads are pinned to the last N logical processors.
Description
Set this environment variable to control pinning for all progress threads of local processes.
Example
I_MPI_ASYNC_PROGRESS_THREADS=3 I_MPI_ASYNC_PROGRESS_PIN=”0,1,2,3,4,5”
In case of three MPI processes per node, progress threads of the first process are pinned to 0, 1, second are pinned to 2, 3, and third are pinned to 4, 5.

I_MPI_ASYNC_PROGRESS_ID_KEY

Set the MPI info object key that is used to explicitly define the progress thread id for a communicator.
Syntax
I_MPI_ASYNC_PROGRESS_ID_KEY=<arg>
Arguments
<key>
MPI info object key. The default value is
thread_id
.
Description
Set this environment variable to control the MPI info object key that is used to define the progress thread id for a communicator. The progress thread id is used for work distribution between progress threads. By default, communication goes over the first progress thread.
Exclude selected processors for progress threads from pinning of computational threads to avoid oversubscription of cores.
For more information and examples, refer to the Intel® MPI Library Developer Guide, section Asynchronous Progress Control.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.