Intel® MPI Library Developer Reference for Linux* OS
I_MPI_ADJUST_<opname>
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.
Environment Variables, Collective Operations, and Algorithms
Collective Operation |
Environment Variable |
Algorithms |
|---|---|---|
MPI_Allgather |
I_MPI_ADJUST_ALLGATHER |
|
MPI_Allgatherv |
I_MPI_ADJUST_ALLGATHERV |
|
MPI_Allreduce |
I_MPI_ADJUST_ALLREDUCE |
|
MPI_Alltoall |
I_MPI_ADJUST_ALLTOALL |
|
MPI_Alltoallv |
I_MPI_ADJUST_ALLTOALLV |
|
MPI_Alltoallw |
I_MPI_ADJUST_ALLTOALLW |
Isend/Irecv + waitall |
MPI_Barrier |
I_MPI_ADJUST_BARRIER |
|
MPI_Bcast |
I_MPI_ADJUST_BCAST |
|
MPI_Exscan |
I_MPI_ADJUST_EXSCAN |
|
MPI_Gather |
I_MPI_ADJUST_GATHER |
|
MPI_Gatherv |
I_MPI_ADJUST_GATHERV |
|
MPI_Reduce_scatter |
I_MPI_ADJUST_REDUCE_SCATTER |
|
MPI_Reduce |
I_MPI_ADJUST_REDUCE |
|
MPI_Scan |
I_MPI_ADJUST_SCAN |
|
MPI_Scatter |
I_MPI_ADJUST_SCATTER |
|
MPI_Scatterv |
I_MPI_ADJUST_SCATTERV |
|
MPI_Iallgather |
I_MPI_ADJUST_IALLGATHER |
|
I_MPI_ADJUST_IALLGATHER_COMPOSITION |
|
|
I_MPI_ADJUST_IALLGATHER_NETWORK |
|
|
I_MPI_ADJUST_IALLGATHER_NODE |
|
|
MPI_Iallgatherv |
I_MPI_ADJUST_IALLGATHERV |
|
I_MPI_ADJUST_IALLGATHERV_COMPOSITION |
|
|
I_MPI_ADJUST_IALLGATHERV_NETWORK |
|
|
I_MPI_ADJUST_IALLGATHERV_NODE |
|
|
MPI_Iallreduce |
I_MPI_ADJUST_IALLREDUCE
|
|
I_MPI_ADJUST_IALLREDUCE_COMPOSITION |
|
|
I_MPI_ADJUST_IALLREDUCE_NETWORK |
|
|
I_MPI_ADJUST_IALLREDUCE_NODE |
|
|
MPI_Ialltoall |
I_MPI_ADJUST_IALLTOALL |
|
I_MPI_ADJUST_IALLTOALL_COMPOSITION |
|
|
I_MPI_ADJUST_IALLTOALL_NETWORK |
|
|
I_MPI_ADJUST_IALLTOALL_NODE |
|
|
MPI_Ialltoallv |
I_MPI_ADJUST_IALLTOALLV |
Isend/Irecv + Waitall |
I_MPI_ADJUST_IALLTOALLV_COMPOSITION |
|
|
I_MPI_ADJUST_IALLTOALLV_NETWORK |
|
|
I_MPI_ADJUST_IALLTOALLV_NODE |
|
|
MPI_Ialltoallw |
I_MPI_ADJUST_IALLTOALLW |
Isend/Irecv + Waitall |
I_MPI_ADJUST_IALLTOALLW_COMPOSITION |
|
|
I_MPI_ADJUST_IALLTOALLW_NETWORK |
|
|
I_MPI_ADJUST_IALLTOALLW_NODE |
|
|
MPI_Ibarrier |
I_MPI_ADJUST_IBARRIER |
Dissemination |
I_MPI_ADJUST_IBARRIER_COMPOSITION |
|
|
I_MPI_ADJUST_IBARRIER_NETWORK |
Dissemination |
|
I_MPI_ADJUST_IBARRIER_NODE |
Dissemination |
|
MPI_Ibcast |
I_MPI_ADJUST_IBCAST |
|
I_MPI_ADJUST_IBCAST_COMPOSITION |
|
|
I_MPI_ADJUST_IBCAST_NETWORK |
|
|
I_MPI_ADJUST_IBCAST_NODE |
|
|
MPI_Iexscan |
I_MPI_ADJUST_IEXSCAN |
Recursive doubling |
I_MPI_ADJUST_IEXSCAN_COMPOSITION |
|
|
I_MPI_ADJUST_IEXSCAN_NETWORK |
Recursive doubling |
|
I_MPI_ADJUST_IEXSCAN_NODE |
Recursive doubling |
|
MPI_Igather |
I_MPI_ADJUST_IGATHER |
|
I_MPI_ADJUST_IGATHER_COMPOSITION |
|
|
I_MPI_ADJUST_IGATHER_NETWORK |
|
|
I_MPI_ADJUST_IGATHER_NODE |
|
|
MPI_Igatherv |
I_MPI_ADJUST_IGATHERV |
|
I_MPI_ADJUST_IGATHERV_COMPOSITION |
|
|
I_MPI_ADJUST_IGATHERV_NETWORK |
|
|
I_MPI_ADJUST_IGATHERV_NODE |
|
|
MPI_Ireduce_scatter |
I_MPI_ADJUST_IREDUCE_SCATTER |
|
I_MPI_ADJUST_IREDUCE_SCATTER_COMPOSITION |
|
|
I_MPI_ADJUST_IREDUCE_SCATTER_NETWORK |
|
|
I_MPI_ADJUST_IREDUCE_SCATTER_NODE |
|
|
MPI_Ireduce_scatter_block |
I_MPI_ADJUST_IREDUCE_SCATTER_BLOCK |
|
I_MPI_ADJUST_IREDUCE_SCATTER_BLOCK_COMPOSITION |
|
|
I_MPI_ADJUST_IREDUCE_SCATTER_BLOCK_NETWORK |
|
|
I_MPI_ADJUST_IREDUCE_SCATTER_BLOCK_NODE |
|
|
MPI_Ireduce |
I_MPI_ADJUST_IREDUCE |
|
I_MPI_ADJUST_IREDUCE_COMPOSITION |
|
|
I_MPI_ADJUST_IREDUCE_NETWORK |
|
|
I_MPI_ADJUST_IREDUCE_NODE |
|
|
MPI_Iscan |
I_MPI_ADJUST_ISCAN |
|
I_MPI_ADJUST_ISCAN_COMPOSITION |
|
|
I_MPI_ADJUST_ISCAN_NETWORK |
|
|
I_MPI_ADJUST_ISCAN_NODE |
|
|
MPI_Iscatter |
I_MPI_ADJUST_ISCATTER |
|
I_MPI_ADJUST_ISCATTER_COMPOSITION |
|
|
I_MPI_ADJUST_ISCATTER_NETWORK |
|
|
I_MPI_ADJUST_ISCATTER_NODE |
|
|
MPI_Iscatterv |
I_MPI_ADJUST_ISCATTERV |
Linear |
I_MPI_ADJUST_ISCATTERV_COMPOSITION |
|
|
I_MPI_ADJUST_ISCATTERV_NETWORK |
Linear |
|
I_MPI_ADJUST_ISCATTERV_NODE |
Linear |
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.
Message Collective Functions
Collective Function |
Message Size Formula |
|---|---|
MPI_Allgather |
recv_count*recv_type_size |
MPI_Allgatherv |
total_recv_count*recv_type_size |
MPI_Allreduce |
count*type_size |
MPI_Alltoall |
send_count*send_type_size |
MPI_Alltoallv |
n/a |
MPI_Alltoallw |
n/a |
MPI_Barrier |
n/a |
MPI_Bcast |
count*type_size |
MPI_Exscan |
count*type_size |
MPI_Gather |
recv_count*recv_type_size if MPI_IN_PLACE is used, otherwise send_count*send_type_size |
MPI_Gatherv |
n/a |
MPI_Reduce_scatter |
total_recv_count*type_size |
MPI_Reduce |
count*type_size |
MPI_Scan |
count*type_size |
MPI_Scatter |
send_count*send_type_size if MPI_IN_PLACE is used, otherwise recv_count*recv_type_size |
MPI_Scatterv |
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.
I_MPI_ADJUST_REDUCE_SEGMENT
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 of a message segment in bytes |
> 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.
This environment variable is relevant for Shumilin’s and topology aware Shumilin’s algorithms only (algorithm N1 and algorithm N3 correspondingly).
I_MPI_ADJUST_BCAST_SEGMENT
Syntax
I_MPI_ADJUST_BCAST_SEGMENT=<block_size>|<algid>:<block_size>[,<algid>:<block_size>[...]]
Arguments
<algid> |
Algorithm identifier |
1 |
Binomial |
4 |
Topology aware binomial |
7 |
Shumilin's |
8 |
Knomial |
<block_size> |
Size of a message segment in bytes |
> 0 |
The default value is 12288 |
Description
Set an internal block size to control MPI_Bcast 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.
This environment variable is relevant only for Binomial, Topology-aware binomial, Shumilin’s and Knomial algorithms.
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 variable together with I_MPI_ADJUST_ALLGATHER=5 to select the knomial tree radix for the corresponding MPI_Allgather algorithm.
I_MPI_ADJUST_BCAST_KN_RADIX
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 variable 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 variable together with I_MPI_ADJUST_ALLREDUCE=9 to select the knomial tree radix for the corresponding MPI_Allreduce algorithm.
I_MPI_ADJUST_REDUCE_KN_RADIX
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 variable together with I_MPI_ADJUST_REDUCE=7 to select the knomial tree radix for the corresponding MPI_Reduce algorithm.
I_MPI_ADJUST_GATHERV_KN_RADIX
Syntax
I_MPI_ADJUST_GATHERV_KN_RADIX=<radix>
Arguments
<radix> |
An integer that specifies a radix used by the Knomial MPI_Gatherv algorithm to build a knomial communication tree |
> 1 |
The default value is 2 |
Description
Set this environment variable together with I_MPI_ADJUST_GATHERV=3 to select the knomial tree radix for the corresponding MPI_Gatherv algorithm.
I_MPI_ADJUST_IALLREDUCE_KN_RADIX
Syntax
I_MPI_ADJUST_IALLREDUCE_KN_RADIX=<radix>
Arguments
<radix> |
An integer that specifies a radix used by the Knomial MPI_Iallreduce algorithm to build a knomial communication tree |
> 1 |
The default value is 4 |
Description
Set this environment variable together with I_MPI_ADJUST_IALLREDUCE=5 to select the knomial tree radix for the corresponding MPI_Iallreduce algorithm.
I_MPI_ADJUST_IBCAST_KN_RADIX
Syntax
I_MPI_ADJUST_IBCAST_KN_RADIX=<radix>
Arguments
<radix> |
An integer that specifies a radix used by the Knomial MPI_Ibcast algorithm to build a knomial communication tree |
> 1 |
The default value is 4 |
Description
Set this environment variable together with I_MPI_ADJUST_IBCAST=4 to select the knomial tree radix for the corresponding MPI_Ibcast algorithm.
I_MPI_ADJUST_IREDUCE_KN_RADIX
Syntax
I_MPI_ADJUST_IREDUCE_KN_RADIX=<radix>
Arguments
<radix> |
An integer that specifies a radix used by the Knomial MPI_Ireduce algorithm to build a knomial communication tree |
> 1 |
The default value is 4 |
Description
Set this environment variable together with I_MPI_ADJUST_IREDUCE=3 to select the knomial tree radix for the corresponding MPI_Ireduce algorithm.
I_MPI_ADJUST_IGATHER_KN_RADIX
Syntax
I_MPI_ADJUST_IGATHER_KN_RADIX=<radix>
Arguments
<radix> |
An integer that specifies a radix used by the Knomial MPI_Igather algorithm to build a knomial communication tree |
> 1 |
The default value is 4 |
Description
Set this environment variable together with I_MPI_ADJUST_IGATHER=2 to select the knomial tree radix for the corresponding MPI_Igather algorithm.
I_MPI_ADJUST_ISCATTER_KN_RADIX
Syntax
I_MPI_ADJUST_ISCATTER_KN_RADIX=<radix>
Arguments
<radix> |
An integer that specifies a radix used by the Knomial MPI_Iscatter algorithm to build a knomial communication tree |
> 1 |
The default value is 4 |
Description
Set this environment variable together with I_MPI_ADJUST_ISCATTER=2 to select the knomial tree radix for the corresponding MPI_Iscatter algorithm.
I_MPI_ADJUST_<COLLECTIVE>_SHM_KN_RADIX
Syntax
I_MPI_ADJUST_<COLLECTIVE>_SHM_KN_RADIX=<radix>
Arguments
<radix> |
An integer that specifies a radix used by the Knomial or Knary SHM-based algorithm to build a knomial or knary communication tree |
> 0 |
|
Description
This environment variable includes the following variables:
I_MPI_ADJUST_BCAST_SHM_KN_RADIX
I_MPI_ADJUST_BARRIER_SHM_KN_RADIX
I_MPI_ADJUST_REDUCE_SHM_KN_RADIX
I_MPI_ADJUST_ALLREDUCE_SHM_KN_RADIX
Set this environment variable to select the knomial or knary tree radix for the corresponding tree SHM-based algorithms. When you build a knomial communication tree, the specified value is used as the power for 2 to generate resulting radix (2^<radix>). When you build a knary communication tree, the specified value is used for the radix.
I_MPI_COLL_INTRANODE
Syntax
I_MPI_COLL_INTRANODE=<mode>
Arguments
<mode> |
Intranode collectives type |
pt2pt |
Use only point-to-point communication-based collectives |
shm |
Enables shared memory collectives. This is the default value |
Description
Set this environment variable to switch intranode communication type for collective operations. If there is large set of communicators, you can switch off the SHM-collectives to avoid memory overconsumption.
I_MPI_COLL_INTRANODE_SHM_THRESHOLD
Syntax
I_MPI_COLL_INTRANODE_SHM_THRESHOLD=<nbytes>
Arguments
<nbytes> |
Define the maximal data block size processed by shared memory collectives. |
> 0 |
Use the specified size. The default value is 16384 bytes. |
Description
Set this environment variable to define the size of shared memory area available for each rank for data placement. Messages greater than this value will not be processed by SHM-based collective operation, but will be processed by point-to-point based collective operation. The value must be a multiple of 4096.
I_MPI_ADJUST_GATHER_SEGMENT
Syntax
I_MPI_ADJUST_GATHER_SEGMENT=<block_size>
Arguments
<block_size> |
Size of a message segment in bytes. |
> 0 |
Use the specified size. The default value is 16384 bytes. |
Description
Set an internal block size to control the MPI_Gather message segmentation for the binomial algorithm with segmentation.