Developer Reference

  • 2020
  • 09/11/2020
  • Public Content

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=2 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.
Exclude selected processors for progress threads from pinning of computational threads to avoid oversubscription of cores.
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.
For more information and examples, refer to the Intel® MPI Library Developer Guide, section
Additional Supported Features > Asynchronous Progress Control.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804