Other Environment Variables
I_MPI_DEBUG
Print out debugging information when an MPI program starts running.
Syntax
I_MPI_DEBUG=
<level>
[,<flags>]
Arguments
<level> | Indicate the level of debug information provided.
|
0 | Output no debugging information. This is the default value.
|
1 | Output libfabric* version and provider.
|
2 | Output information about the tuning file used.
|
3 | Output effective MPI rank,
pid and node mapping table.
|
4 | Output process pinning information.
|
5 | Output environment variables specific to the Intel® MPI Library.
|
> 5 | Add extra levels of debug information.
|
<flags> | Comma-separated list of debug flags
|
pid | Show process id for each debug message.
|
tid | Show thread id for each debug message for multithreaded library.
|
time | Show time for each debug message.
|
datetime | Show time and date for each debug message.
|
host | Show host name for each debug message.
|
level | Show level for each debug message.
|
scope | Show scope for each debug message.
|
line | Show source line number for each debug message.
|
file | Show source file name for each debug message.
|
nofunc | Do not show routine name.
|
norank | Do not show rank.
|
nousrwarn | Suppress warnings for improper use case (for example, incompatible combination of controls).
|
flock | Synchronize debug output from different process or threads.
|
nobuf | Do not use buffered I/O for debug output.
|
Description
Set this environment variable to print debugging information about the application.
Set the same
<
value for all ranks.
level
>You can specify the output file name for debug information by setting the
I_MPI_DEBUG_OUTPUT
environment variable.
Each printed line has the following format:
[<
identifier
>] <message
>where:
- <is the MPI process rank, by default. If you add the 'identifier>+' sign in front of the<number, thelevel><assumes the following format:identifier>rank#pid@hostname. Here,rankis the MPI process rank,pidis the process ID, andhostnameis the host name. If you add the '-' sign,<is not printed at all.identifier>
- <contains the debugging output.message>
The following examples demonstrate possible command lines with the corresponding output:
> mpiexec -n 1 -env I_MPI_DEBUG=2 test.exe ... [0] MPI startup(): shared memory data transfer mode
The following commands are equal and produce the same output:
> mpiexec -n 1 -env I_MPI_DEBUG=2,pid,host test.exe ... [0#1986@mpicluster001] MPI startup(): shared memory data transfer mode
Compiling with the
/Zi
,
/ZI
,
or
/Z7
option adds a considerable amount of printed debug information.
I_MPI_DEBUG_OUTPUT
Set output file name for debug information.
Syntax
I_MPI_DEBUG_OUTPUT=
<arg>
Arguments
Argument | String Value |
stdout | Output to
stdout . This is the default value.
|
stderr | Output to
stderr. |
<file_name> | Specify the output file name for debug information (the maximum file name length is 256 symbols).
|
Description
Set this environment variable if you want to split output of debug information from the output produced by an application. If you use format like
,
or
, rank, process ID or host name is added to the file name accordingly.
%r
%p
%h
I_MPI_DEBUG_COREDUMP
Controls core dump files generation in case of failure during MPI application execution.
Syntax
I_MPI_DEBUG_COREDUMP=
<arg>
Arguments
Argument | Binary Indicator |
enable|yes|on|1 | Enable coredump files generation.
|
disable|no|off|0 | Do not generate coredump files. Default value.
|
Description
Set this environment variable to enable coredump files dumping in case of termination caused by segmentation fault. Available for both release and debug builds.
I_MPI_PMI_VALUE_LENGTH_MAX
Control the length of the value buffer in PMI on the client side.
Syntax
I_MPI_PMI_VALUE_LENGTH_MAX=<
length
>
Arguments
< length >
| Define the value of the buffer length in bytes.
|
< n > > 0
| The default value is -1, which means do not override the value received from the
PMI_KVS_Get_value_length_max() function.
|
Description
Set this environment variable to control the length of the value buffer in PMI on the client side. The length of the buffer will be the lesser of
I_MPI_PMI_VALUE_LENGTH_MAX
and
PMI_KVS_Get_value_length_max()
.
I_MPI_REMOVED_VAR_WARNING
Print out a warning if a removed environment variable is set.
Syntax
I_MPI_REMOVED_VAR_WARNING=
<arg>
Arguments
Argument | Binary Indicator |
enable | yes | on | 1 | Print out the warning. This is the default value
|
disable | no | off | 0 | Do not print the warning
|
Description
Use this environment variable to print out a warning if a removed environment variable is set. Warnings are printed regardless of whether
I_MPI_DEBUG is set.
I_MPI_VAR_CHECK_SPELLING
Print out a warning if an unknown environment variable is set.
Syntax
I_MPI_VAR_CHECK_SPELLING=
<arg>
Arguments
Argument | Binary Indicator |
enable | yes | on | 1 | Print out the warning. This is the default value
|
disable | no | off | 0 | Do not print the warning
|
Description
Use this environment variable to print out a warning if an unsupported environment variable is set. Warnings are printed in case of removed or misprinted environment variables.
I_MPI_LIBRARY_KIND
Specify the Intel® MPI Library configuration.
Syntax
I_MPI_LIBRARY_KIND=
<value>
Arguments
Value | Description |
release | Multi-threaded optimized library. This is the default value
|
debug | Multi-threaded debug library
|
Description
Use this variable to set an argument for the
vars.
script. This script establishes the Intel® MPI Library environment and enables you to specify the appropriate library configuration. To ensure that the desired configuration is set, check the
bat
LD_LIBRARY_PATH
variable.
Example
> export I_MPI_LIBRARY_KIND=debug
Setting this variable is equivalent to passing an argument directly to the
vars.[c]sh
script:
Example
> <installdir> \env\vars.bat release
I_MPI_PLATFORM
Select the intended optimization platform.
Syntax
I_MPI_PLATFORM=
<platform>
Arguments
<platform> | Intended optimization platform (string value)
|
auto | Use only with heterogeneous runs to determine the appropriate platform across all nodes. May slow down MPI initialization time due to collective operation across all nodes.
|
ivb | Optimize for the Intel® Xeon® Processors E3, E5, and E7 V2 series and other Intel® Architecture processors formerly code named Ivy Bridge.
|
hsw | Optimize for the Intel Xeon Processors E3, E5, and E7 V3 series and other Intel® Architecture processors formerly code named Haswell.
|
bdw | Optimize for the Intel Xeon Processors E3, E5, and E7 V4 series and other Intel Architecture processors formerly code named Broadwell.
|
knl | Optimize for the Intel® Xeon Phi™ processor and coprocessor formerly code named Knights Landing.
|
skx | Optimize for the Intel Xeon Processors E3 V5 and Intel Xeon Scalable Family series, and other Intel Architecture processors formerly code named Skylake.
|
clx | Optimize for the 2nd Generation Intel Xeon Scalable Processors, and other Intel® Architecture processors formerly code named Cascade Lake.
|
clx-ap | Optimize for the 2nd Generation Intel Xeon Scalable Processors, and other Intel Architecture processors formerly code named Cascade Lake AP
Note: The explicit
clx-ap setting is ignored if the actual platform is not Intel.
|
Description
Set this environment variable to use the predefined platform settings. The default value is a local platform for each node.
The variable is available for both Intel and non-Intel microprocessors, but it may utilize additional optimizations for Intel microprocessors than it utilizes for non-Intel microprocessors.
The values
auto[:min]
,
auto:max
, and
auto:most
may increase the MPI job startup time.
I_MPI_MALLOC
Control the Intel® MPI Library custom allocator of private memory.
Syntax
I_MPI_MALLOC=
<arg>
Argument
Argument | Binary Indicator |
1 | Enable the Intel MPI Library custom allocator of private memory.
Use the Intel MPI custom allocator of private memory for
MPI_Alloc_mem/MPI_Free_mem .
|
0 | Disable the Intel MPI Library custom allocator of private memory.
Use the system-provided memory allocator for
MPI_Alloc_mem/MPI_Free_mem .
|
Description
Use this environment variable to enable or disable the Intel MPI Library custom allocator of private memory for
MPI_Alloc_mem/MPI_Free_mem
.
By default,
I_MPI_MALLOC
is enabled if
I_MPI_ASYNC_PROGRESS
and
I_MPI_THREAD_SPLIT
are disabled.
If the platform is not supported by the Intel MPI Library custom allocator of private memory, a system-provided memory allocator is used and the
I_MPI_MALLOC
variable is ignored.
I_MPI_WAIT_MODE
Control the Intel® MPI Library optimization for oversubscription mode.
Syntax
I_MPI_WAIT_MODE=
<arg>
Arguments
Argument | Binary Indicator |
0 | Optimize MPI application to work in the normal mode (1 rank on 1 CPU). This is the default value if the number of processes on a computation node is less than or equal to the number of CPUs on the node.
|
1 | Optimize MPI application to work in the oversubscription mode (multiple ranks on 1 CPU). This is the default value if the number of processes on a computation node is greater than the number of CPUs on the node.
|
Description
It is recommended to use this variable in the oversubscription mode.
I_MPI_THREAD_YIELD
Control the Intel® MPI Library thread yield customization during MPI busy wait time.
Syntax
I_MPI_THREAD_YIELD=
<arg>
Arguments
Argument | Description |
0 | Do nothing for thread yield during the busy wait (spin wait). This is the default value when
I_MPI_WAIT_MODE=0 |
1 | Do the
pause processor instruction for
I_MPI_PAUSE_COUNT during the busy wait.
|
2 | Do the
SwitchToThread() system call for thread yield during the busy wait.
This is the default value when
I_MPI_WAIT_MODE=1 |
3 | Do the
Sleep() system call for
I_MPI_THREAD_SLEEP number of milliseconds for thread yield during the busy wait.
|
Description
I_MPI_THREAD_YIELD=0
or
I_MPI_THREAD_YIELD=1
in the normal mode and
I_MPI_THREAD_YIELD=2
or
I_MPI_THREAD_YIELD=3
in the oversubscription mode.
I_MPI_PAUSE_COUNT
Control the Intel® MPI Library pause count for the thread yield customization during MPI busy wait time.
Syntax
I_MPI_PAUSE_COUNT=
<arg>
Argument
Argument | Description |
>=0 | Pause count for thread yield customization during MPI busy wait time.
The default value is 0. Normally, the value is less than 100.
|
Description
This variable is applicable when
I_MPI_THREAD_YIELD=1
. Small values of
I_MPI_PAUSE_COUNT
may increase performance, while larger values may reduce energy consumption.
I_MPI_SPIN_COUNT
Control the spin count value.
Syntax
I_MPI_SPIN_COUNT=
<scount>
Argument
<scount> | Define the loop spin count when polling fabric(s).
|
>=0 | The default <scount> value is equal to 1 when more than one process runs per processor/core. Otherwise the value equals 2000. The maximum value is equal to 2147483647.
|
Description
Set the spin count limit. The loop for polling the fabric(s) spins
<scount>
times before the library releases the processes if no incoming messages are received for processing. Smaller values for
<scount>
cause the Intel® MPI Library to release the processor more frequently.
Use the
I_MPI_SPIN_COUNT
environment variable for tuning application performance. The best value for
<scount>
can be chosen on an experimental basis. It depends on the particular computational environment and application.
I_MPI_THREAD_SLEEP
Control the Intel® MPI Library thread sleep
milliseconds
timeout for thread yield customization while MPI busy wait progress.
Syntax
I_MPI_THREAD_SLEEP=
<arg>
Argument
Argument | Description |
>=0 | Thread sleep microseconds timeout. The default value is 0. Normally, the value is less than 100.
|
Description
This variable is applicable when
I_MPI_THREAD_YIELD=3
. Small values of
I_MPI_PAUSE_COUNT
may increase performance in the normal mode, while larger values may increase performance in the oversubscription mode
I_MPI_EXTRA_FILESYSTEM
Control native support for parallel file systems.
Syntax
I_MPI_EXTRA_FILESYSTEM=
<arg>
Argument
Argument | Binary Indicator |
enable | yes | on | 1 | Enable native support for parallel file systems.
|
disable | no | off | 0 | Disable native support for parallel file systems. This is the default value.
|
Description
Use this environment variable to enable or disable native support for parallel file systems.
I_MPI_EXTRA_FILESYSTEM_FORCE
Syntax
I_MPI_EXTRA_FILESYSTEM_FORCE=<ufs|nfs|gpfs|panfs|lustre>
Description
Force filesystem recognition logic. Setting this variable is equivalent to prefixing all paths in MPI-IO calls with the selected filesystem plus colon.
I_MPI_MULTIRAIL
Syntax
I_MPI_MULTIRAIL=
<arg>
Argument
Argument | Binary Indicator |
1 | Enable multi-rail capability.
|
0 | Disable multi-rail capability. This is the default value.
|
Description
Set this variable to enable multi-rail capability and identify NICs serviced by the provider. Pick this variable on the same NUMA.