I_MPI_TUNING_AUTO Family Environment Variables
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.
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.
- Source apsvars.sh:
$ source <path_to_aps>/apsvars.sh
- 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
- Generate an APS report:
$ aps-report aps_result_20190228/ -lFE
- 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 |-----------------------------------------------------------------------------
- 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.