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

I_MPI_TUNING_AUTO Family Environment Variables

NOTE:
You must set I_MPI_TUNING_MODE to use any of the I_MPI_TUNING_AUTO family environment variables.
NOTE:
The I_MPI_TUNING_AUTO family environment variables support only Intel processors, and cannot be used on other platforms.

I_MPI_TUNING_AUTO_STORAGE_SIZE

Define size of the per-communicator tuning storage.

Syntax

I_MPI_TUNING_AUTO_STORAGE_SIZE=<size>

Argument

<size> Specify size of the communicator tuning storage. The default size of the storage is 512 Kb.

Description

Set this environment variable to change the size of the communicator tuning storage.

I_MPI_TUNING_AUTO_ITER_NUM

Specify the number of autotuner iterations.

Syntax

I_MPI_TUNING_AUTO_ITER_NUM=<number>

Argument

<number> Define the number of iterations. By default, it is 1.

Description

Set this environment variable to specify the number of autotuner iterations. The greater iteration number produces more accurate results.

NOTE:
To check if all possible algorithms are iterated, make sure that the total number of collective invocations for a particular message size in a target application is at least equal the value of I_MPI_TUNING_AUTO_ITER_NUM multiplied by the number of algorithms.

I_MPI_TUNING_AUTO_WARMUP_ITER_NUM

Specify the number of warmup autotuner iterations.

Syntax

I_MPI_TUNING_AUTO_WARMUP_ITER_NUM=<number>

Argument

<number> Define the number of iterations. By default, it is 1.

Description

Set this environment variable to specify the number of autotuner warmup iterations. Warmup iterations do not impact autotuner decisions and allow to skip additional iterations, such as infrastructure preparation.

I_MPI_TUNING_AUTO_SYNC

Enable the internal barrier on every iteration of the autotuner.

Syntax

I_MPI_TUNING_AUTO_SYNC=<arg>

Argument

<arg> Binary indicator
enable | yes | on | 1 Align the autotuner with the IMB measurement approach.
disable | no | off | 0 Do not use the barrier on every iteration of the autotuner. This is the default value.

Description

Set this environment variable to control the IMB measurement logic. Setting this variable to 1 may lead to overhead due to an additional MPI_Barrier call.

I_MPI_TUNING_AUTO_COMM_LIST

Control the scope of autotuning.

Syntax

I_MPI_TUNING_AUTO_COMM_LIST=<comm_id_1, ..., comm_id_n>

Argument

<comm_id_n, ...> Specify communicators to be tuned.

Description

Set this environment variable to specify communicators to be tuned using their unique id. By default, the variable is not specified. In this case, all communicators in the application are involved into the tuning process.

NOTE:
To get the list of communicators available for tuning, use the Application Performance Snapshot (APS) tool, which supports per communicator profiling starting with the 2019 Update 4 release. For example:
  1. Source apsvars.sh:
    $ source <path_to_aps>/apsvars.sh
  2. Gather APS statistics:
    $ export MPS_STAT_LEVEL=5
    $ export APS_COLLECT_COMM_IDS=1
    mpirun -aps -n 128 -ppn 64 IMB-MPI1 allreduce -npmin 128 -iter 1000,800 -time 4800
  3. Generate an APS report:
    $ aps-report aps_result_20190228/ -lFE
  4. Get the results:
    | Communicators used in the application
    |-----------------------------------------------------------------------------
    | Communicator Id      Communicator Size     Time (Rank Average)(sec) Ranks
    |-----------------------------------------------------------------------------
      4611686018431582688   4                    1.80 (0.45)              0,1,2,3
    |-----------------------------------------------------------------------------
      4611686018431582208   4                    0.59 (0.15)              0,1,2,3
    |-----------------------------------------------------------------------------
      4611686018429485552   2                    0.51 (0.25)              0,1
    |-----------------------------------------------------------------------------
      4611686018429485520   2                    0.01 (0.00)              0,1
    |-----------------------------------------------------------------------------
      4611686018431582672   4                    0.00 (0.00)              0,1,2,3
    |-----------------------------------------------------------------------------
  5. Specify the communicators to be tuned:
    $ export I_MPI_TUNING_AUTO_COMM_LIST=4611686018431582688
    $ export MPS_STAT_LEVEL=5
    $ export APS_COLLECT_COMM_IDS=1 
    $ export I_MPI_TUNING_AUTO=1
    $ mpirun -aps -n 128 -ppn 64 IMB-MPI1 allreduce -iter 1000,800 -time 4800

I_MPI_TUNING_AUTO_COMM_DEFAULT

Mark all communicators with the default value.

Syntax

I_MPI_TUNING_AUTO_COMM_DEFAULT=<arg>

Argument

<arg> Binary indicator
enable | yes | on | 1 Mark communicators.
disable | no | off | 0 Do not mark communicators. This is the default value.

Description

Set this environment variable to mark all communicators in an application with the default value. In this case, all communicators will have the identical default comm_id equal to -1.

I_MPI_TUNING_AUTO_COMM_USER

Enable communicator marking with a user value.

Syntax

I_MPI_TUNING_AUTO_COMM_USER=<arg>

Argument

<arg> Binary indicator
enable | yes | on | 1 Enable marking of communicators.
disable | no | off | 0 Disable marking of communicators. This is the default value.

Description

Set this environment variable to enable communicator marking with a user value. To mark a communicator in your application, use the MPI_Info object for this communicator that contains a record with the comm_id key. The key must belong the 0...UINT64_MAX range.

I_MPI_TUNING_AUTO_ITER_POLICY

Control the iteration policy logic.

Syntax

_MPI_TUNING_AUTO_ITER_POLICY=<arg>

Argument

<arg> Binary indicator
enable | yes | on | 1 Reduce the number of iterations with a message size increase after 64Kb (by half). This is the default value.
disable | no | off | 0 Use the I_MPI_TUNING_AUTO_ITER_NUM value. This value affects warmup iterations.

Description

Set this environment variable to control the autotuning iteration policy logic.

I_MPI_TUNING_AUTO_ITER_POLICY_THRESHOLD

Control the message size limit for the I_MPI_TUNING_AUTO_ITER_POLICY environment variable.

Syntax

I_MPI_TUNING_AUTO_ITER_POLICY_THRESHOLD=<arg>

Argument

<arg> Define the value. By default, it is 64KB.

Description

Set this environment variable to control the message size limit for the autotuning iteration policy logic (I_MPI_TUNING_AUTO_ITER_POLICY).

I_MPI_TUNING_AUTO_POLICY

Choose the best algorithm identification strategy.

Syntax

I_MPI_TUNING_AUTO_POLICY=<arg>

Argument

<arg>

Description

max Choose the best algorithm based on a maximum time value. This is the default value.
min Choose the best algorithm based on a minimum time value.
avg Choose the best algorithm based on an average time value.

Description

Set this environment variable to control the autotuning strategy and choose the best algorithm based on the time value across ranks involved into the tuning process.