Intel® MPI Library Developer Reference for Linux* OS

ID 768732
Date 11/07/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

Environment Variables for Asynchronous Progress Control

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.

NOTE:

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.