Intel® MPI Library Reference Manual for Linux* OS
Control collective operation algorithm selection.
Syntax
I_MPI_ADJUST_<opname>=<algid>[:<conditions>][;<algid>:<conditions>[...]]
Arguments
<algid> |
Algorithm identifier |
>= 0 |
The default value of zero selects the reasonable settings |
<conditions> |
A comma separated list of conditions. An empty list selects all message sizes and process combinations |
<l> |
Messages of size <l> |
<l>-<m> |
Messages of size from <l> to <m>, inclusive |
<l>@<p> |
Messages of size <l> and number of processes <p> |
<l>-<m>@<p>-<q> |
Messages of size from <l> to <m> and number of processes from <p> to <q>, inclusive |
Description
Set this environment variable to select the desired algorithm(s) for the collective operation <opname> under particular conditions. Each collective operation has its own environment variable and algorithms.
Table 3.5-1 Environment Variables, Collective Operations, and Algorithms
Environment Variable |
Collective Operation |
Algorithms |
I_MPI_ADJUST_ALLGATHER |
MPI_Allgather |
|
I_MPI_ADJUST_ALLGATHERV |
MPI_Allgatherv |
|
I_MPI_ADJUST_ALLREDUCE |
MPI_Allreduce |
|
I_MPI_ADJUST_ALLTOALL |
MPI_Alltoall |
|
I_MPI_ADJUST_ALLTOALLV |
MPI_Alltoallv |
|
I_MPI_ADJUST_ALLTOALLW |
MPI_Alltoallw |
Isend/Irecv + waitall algorithm |
I_MPI_ADJUST_BARRIER |
MPI_Barrier |
|
I_MPI_ADJUST_BCAST |
MPI_Bcast |
|
I_MPI_ADJUST_EXSCAN |
MPI_Exscan |
|
I_MPI_ADJUST_GATHER |
MPI_Gather |
|
I_MPI_ADJUST_GATHERV |
MPI_Gatherv |
|
I_MPI_ADJUST_REDUCE_SCATTER |
MPI_Reduce_scatter |
|
I_MPI_ADJUST_REDUCE |
MPI_Reduce |
|
I_MPI_ADJUST_SCAN |
MPI_Scan |
|
I_MPI_ADJUST_SCATTER |
MPI_Scatter |
|
I_MPI_ADJUST_SCATTERV |
MPI_Scatterv |
|
The message size calculation rules for the collective operations are described in the table. In the following table, "n/a" means that the corresponding interval <l>-<m> should be omitted.
Table 3.5-2 Message Collective Functions
Collective Function |
Message Size Formula |
recv_count*recv_type_size |
|
total_recv_count*recv_type_size |
|
count*type_size |
|
send_count*send_type_size |
|
n/a |
|
n/a |
|
n/a |
|
count*type_size |
|
count*type_size |
|
recv_count*recv_type_size if MPI_IN_PLACE is used, otherwise send_count*send_type_size |
|
n/a |
|
total_recv_count*type_size |
|
count*type_size |
|
count*type_size |
|
send_count*send_type_size if MPI_IN_PLACE is used, otherwise recv_count*recv_type_size |
|
n/a |
Examples
Use the following settings to select the second
algorithm for MPI_Reduce operation:
I_MPI_ADJUST_REDUCE=2
Use the following settings to define the algorithms
for MPI_Reduce_scatter
operation:
I_MPI_ADJUST_REDUCE_SCATTER=4:0-100,5001-10000;1:101-3200,2:3201-5000;3
In this case. algorithm 4 is used for the message sizes between 0 and 100 bytes and from 5001 and 10000 bytes, algorithm 1 is used for the message sizes between 101 and 3200 bytes, algorithm 2 is used for the message sizes between 3201 and 5000 bytes, and algorithm 3 is used for all other messages.
Syntax
I_MPI_ADJUST_REDUCE_SEGMENT=<block_size>|<algid>:<block_size>[,<algid>:<block_size>[...]]
Arguments
<algid> |
Algorithm identifier |
1 |
Shumilin’s algorithm |
3 |
Topology aware Shumilin’s algorithm |
<block_size> |
Size in bytes of a message segment |
> 0 |
The default value is 14000 |
Description:
Set an internal block size to control MPI_Reduce message segmentation for the specified algorithm. If the <algid> value is not set, the <block_size> value is applied for all the algorithms, where it is relevant.
Note:
This environment variable is relevant for Shumilin’s and topology aware Shumilin’s algorithms only (algorithm N1 and algorithm N3 correspondingly).
I_MPI_ADJUST_ALLGATHER_KN_RADIX
Syntax
I_MPI_ADJUST_ALLGATHER_KN_RADIX=<radix>
Arguments
<radix> |
An integer that specifies a radix used by the Knomial MPI_Allgather algorithm to build a knomial communication tree |
> 1 |
The default value is 2 |
Description:
Set this environment together with I_MPI_ADJUST_ALLGATHER=5 to select the knomial tree radix for the corresponding MPI_Allgather algorithm.
Syntax
I_MPI_ADJUST_BCAST_KN_RADIX=<radix>
Arguments
<radix> |
An integer that specifies a radix used by the Knomial MPI_Bcast algorithm to build a knomial communication tree |
> 1 |
The default value is 4 |
Description:
Set this environment together with I_MPI_ADJUST_BCAST=8 to select the knomial tree radix for the corresponding MPI_Bcast algorithm.
I_MPI_ADJUST_ALLREDUCE_KN_RADIX
Syntax
I_MPI_ADJUST_ALLREDUCE_KN_RADIX=<radix>
Arguments
<radix> |
An integer that specifies a radix used by the Knomial MPI_Allreduce algorithm to build a knomial communication tree |
> 1 |
The default value is 4 |
Description:
Set this environment together with I_MPI_ADJUST_ALLREDUCE=9 to select the knomial tree radix for the corresponding MPI_Allreduce algorithm.
Syntax
I_MPI_ADJUST_REDUCE_KN_RADIX=<radix>
Arguments
<radix> |
An integer that specifies a radix used by the Knomial MPI_Reduce algorithm to build a knomial communication tree |
> 1 |
The default value is 4 |
Description:
Set this environment together with I_MPI_ADJUST_REDUCE=7 to select the knomial tree radix for the corresponding MPI_Reduce algorithm.