Other Environment Variables
I_MPI_DEBUG
Print out debugging information when an MPI program starts running.
Syntax
I_MPI_DEBUG=<level>[,<flags>]
Arguments
Argument | Description |
---|---|
<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. |
Argument | Description |
---|---|
<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.
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:
- <identifier> is the MPI process rank, by default. If you add the '+' sign in front of the <level> number, the <identifier> assumes the following format: rank#pid@hostname. Here, rank is the MPI process rank, pid is the process ID, and hostname is the host name. If you add the '-' sign, <identifier> is not printed at all.
- <message> contains the debugging output.
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
I_MPI_DEBUG_OUTPUT
Set output file name for debug information.
Syntax
I_MPI_DEBUG_OUTPUT=<arg>
Arguments
Argument | Description |
---|---|
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 %r, %p or %h, rank, process ID or host name is added to the file name accordingly.
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 | Description |
---|---|
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
Argument | Description |
---|---|
<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 | Description |
---|---|
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 | Description |
---|---|
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. batscript. 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 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
Argument | Description |
---|---|
<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.
I_MPI_MALLOC
Control the Intel® MPI Library custom allocator of private memory.
Syntax
I_MPI_MALLOC=<arg>
Argument
Argument | Description |
---|---|
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.
I_MPI_WAIT_MODE
Control the Intel® MPI Library optimization for oversubscription mode.
Syntax
I_MPI_WAIT_MODE=<arg>
Arguments
Argument | Description |
---|---|
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. The mode is available for the intra and internode paths.
Additionally for the internode case, I_MPI_OFI_WAIT_MODE enables the OFI wait object for the psm3 provider for I_MPI_FABRICS=ofi scenario. In that case, the following psm3 environment variables are also set:
- PSM3_NIC_LOOPBACK=1
- PSM3_DEVICES=self,nic
- FI_PSM3_YIELD_MODE=1
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
Argument | Description |
---|---|
<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 | Description |
---|---|
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. This environment variable is deprecated.
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. This environment variable is deprecated.
I_MPI_FILESYSTEM
Turn on/off native parallel file systems support. If set, I_MPI_EXTRA_FILESYSTEM is ignored.
Syntax
I_MPI_FILESYSTEM=<arg>
Argument
Argument | Description |
---|---|
disable | no | off | 0 | Disable native support for parallel file. This is the default value. |
enable | yes | on | 1 | Enable native support for parallel file. |
I_MPI_FILESYSTEM_FORCE
Force Intel MPI to use a specific driver for a file system. If set, I_MPI_EXTRA_FILESYSTEM_FORCE is ignored.
Syntax
I_MPI_FILESYSTEM_FORCE=<ufs|nfs|gpfs|panfs|lustre|daos>
I_MPI_FILESYSTEM_CB_NODES
Explicitly set the MPI-IO hint cb_nodes for all MPI-IO file handles, overriding user info set at runtime. Non-positive values are ignored.
Syntax
I_MPI_FILESYSTEM_CB_NODES=<arg>
Argument
Argument | Description |
---|---|
Any positive integer | Maximum number of collective I/O aggregators for all collective I/O operations. |
Non-positive integer | Ignored. The default value is -1. |
I_MPI_FILESYSTEM_CB_CONFIG_LIST
Explicitly set the MPI-IO hint cb_config_list for all MPI-IO file handles, which overrides user information set at runtime.
Syntax
I_MPI_FILESYSTEM_CB_CONFIG_LIST=<arg>
Argument
Argument | Description |
---|---|
"*:<proc>" | Place <proc> number of I/O aggregators per node. <proc> should be a positive integer. |
"" | Ignored. This is the default value. |
I_MPI_MULTIRAIL
Syntax
I_MPI_MULTIRAIL=<arg>
Argument
Argument | Description |
---|---|
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.
Syntax
I_MPI_SPAWN=<arg>
Argument
Argument | Description |
---|---|
enable | yes | on | 1 | Enable support of dynamic processes. |
disable | no | off | 0 | Disable support of dynamic processes. This is the default value. |
Description
Use this environment variable to enable or disable dynamic processes and MPI-port support.
When dynamic processes infrastructure conflicts with optimization or require extra communication during bootstrap, this feature is disabled by default. This control is mandatory for applications that use dynamic processes.