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,2 Output libfabric* version and provider.
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.
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.

Note

Set the same <level> value for all ranks.

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:

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:

$ mpirun -n 1 -env I_MPI_DEBUG=2,pid,host ./a.out
...
[0#1986@mpicluster001] MPI startup(): shared memory data transfer mode
> mpiexec -n 1 -env I_MPI_DEBUG=2,pid,host test.exe
...
[0#1986@mpicluster001] MPI startup(): shared memory data transfer mode

Note

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

<arg> 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 %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

<arg> 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_NETMASK

Choose the network interface for MPI communication over sockets.

Syntax

I_MPI_NETMASK=<arg>

Arguments

<arg> Define the network interface (string parameter)
<interface_mnemonic> Mnemonic of the network interface: ib or eth
ib Select IPoIB*
eth Select Ethernet. This is the default value
<network_address> Network address. The trailing zero bits imply netmask
<network_address/netmask> Network address. The <netmask> value specifies the netmask length
<list of interfaces> A colon separated list of network addresses or interface mnemonics

Description

Set this environment variable to choose the network interface for MPI communication over sockets in the sock and ssm communication modes. If you specify a list of interfaces, the first available interface on the node will be used for communication.

Examples

  1. Use the following setting to select the IP over InfiniBand* (IPoIB) fabric:

    I_MPI_NETMASK=ib

    I_MPI_NETMASK=eth

  2. Use the following setting to select a particular network for socket communications. This setting implies the 255.255.0.0 netmask:

    I_MPI_NETMASK=192.169.0.0

  3. Use the following setting to select a particular network for socket communications with netmask set explicitly:

    I_MPI_NETMASK=192.169.0.0/24

  4. Use the following setting to select the specified network interfaces for socket communications:

    I_MPI_NETMASK=192.169.0.5/24:ib0:192.169.0.0

Note

If the library cannot find any suitable interface by the given value of I_MPI_NETMASK, the value will be used as a substring to search in the network adapter's description field. And if the substring is found in the description, this network interface will be used for socket communications. For example, if I_MPI_NETMASK=myri and the description field contains something like Myri-10G adapter, this interface will be chosen.

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

<arg> 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

<arg> 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> Binary indicator
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

<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.

Note

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

<arg> 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 for release and debug Intel MPI Library configurations and disabled for release_mt sand debug_mt configurations.

Note

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>

Argument

<arg> 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>

Argument

<arg> Binary indicator
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

<arg>

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_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

<arg>

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

<arg> 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.