Intel® MPI Library Reference Manual for Linux* OS
Print out debugging information when an MPI program starts running.
I_MPI_DEBUG=<level>[,<flags>]
<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 |
Set this environment variable to control the output of the debugging information.
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
<identifier> identifies the MPI process that produced the message. The <identifier> is an MPI process rank if <level> is an unsigned number. If the '+' sign is added in front of the <level> number, the <identifier> contains a rank#pid@hostname tuple. Here, rank is the MPI process rank; pid is the UNIX process id; and hostname is the host name as defined at process launch time.
<message> contains the debugging output.
For example, the following command:
$ mpiexec -n 1 -env I_MPI_DEBUG 2 ./a.out
may produce the following output:
[0] MPI startup(): shared memory data transfer mode
while the command
$ mpiexec -n 1 -env I_MPI_DEBUG +2 ./a.out
or
$ mpiexec -n 1 -env I_MPI_DEBUG 2,pid,host ./a.out
may produce the following output:
[0#1986@mpicluster001] MPI startup(): shared memory data transfer mode
Set output file name for debug information.
<arg> |
String value |
stdout |
Output to stdout - default value |
stderr |
Output to stderr |
<file_name> |
Specify the output file name for debug information (a maximum of 256 symbols) |
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, pid or host name is added to the file name accordingly.
Define the default settings for the -perhost option in the mpiexec command.
I_MPI_PERHOST=<value>
<value> |
Define the default process layout |
<n> > 0 |
<n> processes per node |
all |
All logical CPUs on a node |
allcores |
All cores (physical CPUs) on a node |
Set this environment variable to define the default setting for the -perhost option. If -perhost is explicitly called in the command line, the I_MPI_PERHOST environment variable has no effect. The -perhost option assumes the value of the I_MPI_PERHOST environment variable if this environment variable is defined.
Print library version information.
I_MPI_PRINT_VERSION=<arg>
<arg> |
Binary indicator |
enable | yes | on | 1 |
Print library version information. |
disable | no | off | 0 |
No action. This is the default value. |
Set this environment variable to enable/disable printing of Intel® MPI library version information when an MPI application starts running.
(SDK only) I_MPI_JOB_TRACE_LIBS
(MPIEXEC_TRACE_LIBS)
Choose the libraries to preload through the -trace option.
I_MPI_JOB_TRACE_LIBS=<arg>
MPIEXEC_TRACE_LIBS=<arg>
<arg> |
String parameter |
<list> |
Blank separated list of libraries to preload. The default value is vt |
Set this environment variable to choose an alternative library for preloading by the -trace option.
(SDK only) I_MPI_JOB_CHECK_LIBS
Choose the libraries to preload through the -check_mpi option.
I_MPI_JOB_CHECK_LIBS=<arg>
<arg> |
String parameter |
<list> |
Blank separated list of libraries to preload. The default value is vtmc |
Set this environment variable to choose an alternative library for preloading by the -check_mpi option.
Set the mpiexec job startup timeout.
I_MPI_JOB_STARTUP_TIMEOUT=<timeout>
<timeout> |
|
<n> >= 0 |
The default timeout value is 20 seconds |
Set this environment variable to make mpiexec wait for the job to start in <timeout> seconds after its launch. The <timeout> value should be greater than zero. Otherwise the environment variable setting is ignored and a warning message is printed. Setting this environment variable may make sense on large clusters with a lot of nodes where the job startup time may exceed the default value.
Set the I_MPI_JOB_STARTUP_TIMEOUT environment variable in the shell environment before executing the mpiexeccommand. Do not use the -genv or -env options for setting the <timeout> value. Those options are used only for passing environment variables to the MPI process environment.
(MPIEXEC_TIMEOUT)
I_MPI_JOB_TIMEOUT=<timeout>
MPIEXEC_TIMEOUT=<timeout>
<timeout> |
|
<n> >= 0 |
The default timeout value is zero, meaning no timeout |
Set this environment variable to make mpiexec terminate the job in <timeout> seconds after its launch. The <timeout> value should be greater than zero. Otherwise the environment variable setting is ignored.
Set theI_MPI_JOB_TIMEOUT environment variable in the shell environment before executing the mpiexec command. Do not use the -genv or -env options for setting the <timeout> value. Those options are used only for passing environment variables to the MPI process environment.
(MPIEXEC_TIMEOUT_SIGNAL)
Define a signal to be used when a job is terminated because of a timeout.
I_MPI_JOB_TIMEOUT_SIGNAL=<number>
MPIEXEC_TIMEOUT_SIGNAL=<number>
<number> |
Define signal number |
<n> > 0 |
The default value is 9 (SIGKILL) |
Define a signal number for task termination upon the timeout period specified by the environment variable I_MPI_JOB_TIMEOUT. If you set a signal number unsupported by the system, mpiexec prints a warning message and continues task termination using the default signal number 9 (SIGKILL).
Define a signal to be sent to all processes when a job is terminated unexpectedly.
I_MPI_JOB_ABORT_SIGNAL=<number>
<number> |
Define signal number |
<n> > 0 |
The default value is 9 (SIGKILL) |
Set this environment variable to define a signal for task termination. If you set an unsupported signal number, mpiexec prints a warning message and uses the default signal 9 (SIGKILL).
(MPIEXEC_SIGNAL_PROPAGATION)
Control signal propagation.
I_MPI_JOB_SIGNAL_PROPAGATION=<arg>
MPIEXEC_SIGNAL_PROPAGATION=<arg>
<arg> |
Binary indicator |
enable |yes | on| 1 |
Turn on propagation. |
disable | no | off | 0 |
Turn off propagation. This is the default value |
Set this environment variable to control propagation of the signals (SIGINT, SIGALRM, and SIGTERM) that may be received by the MPD daemons. If signal propagation is enabled, the received signal is sent to all processes of the MPI job. If signal propagation is disabled, all processes of the MPI job are stopped with the default signal 9 (SIGKILL).
Set the size of the stdout/stderr output buffer.
I_MPI_OUTPUT_CHUNK_SIZE=<size>
<size> |
Define output chunk size in kilobytes |
<n> > 0 |
The default chunk size value is 1 KB |
Set this environment variable to increase the size of the buffer used to intercept the standard output and standard error streams from the processes. If the <size> value is not greater than zero, the environment variable setting is ignored and a warning message is displayed.
Use this setting for applications that create a significant amount of output from different processes. With the -ordered-output mpiexec option, this setting helps to prevent the output from garbling.
Set the I_MPI_OUTPUT_CHUNK_SIZE environment variable in the shell environment before executing the mpiexec command. Do not use the -genv or -env options for setting the <size> value. Those options are used only for passing environment variables to the MPI process environment.
Turn on/off the use of the Intel® MPI Library Process Management Interface (PMI) extensions.
<arg> |
Binary indicator |
enable | yes | on | 1 |
Turn on the PMI extensions |
disable | no | off | 0 |
Turn off the PMI extensions |
The Intel® MPI Library automatically detects if your process manager supports the PMI extensions. If supported, the extensions substantially decrease task startup time. Set I_MPI_PMI_EXTENSIONS to disable if your process manager does not support these extensions.
Specify the name to third party implementation of the PMI library.
I_MPI_PMI_LIBRARY=<name>
<name> |
Full name of the third party PMI library |
Set I_MPI_PMI_LIBRARY to specify the name of third party PMI library. When you set this environment variable, provide full name of the library with full path to it.
(I_MPI_PMI_FAST_STARTUP)
Turn on/off the faster Intel® MPI Library process startup algorithm.
I_MPI_JOB_FAST_STARTUP=<arg>
I_MPI_PMI_FAST_STARTUP=<arg>
<arg> |
Binary indicator |
enable | yes | on | 1 |
Turn on the algorithm for fast startup. This is the default value |
disable | no | off | 0 |
Turn off the algorithm for fast startup |
The new algorithm significantly decreases the application startup time. Some DAPL providers may be overloaded during startup of large number of processes (greater than 512). To avoid this problem, turn off this algorithm by setting the I_MPI_JOB_FAST_STARTUP environment variable to disable.
Select a particular TotalView* executable file to use.
<path> |
Path/name of the TotalView* executable file instead of the default totalview |
Set this environment variable to select a particular TotalView* executable file.
Select the intended optimization platform.
I_MPI_PLATFORM=<platform>
<platform> |
Intended optimization platform (string value) |
auto[:min] |
Optimize for the oldest supported Intel® Architecture Processor across all nodes. This is the default value |
auto:max |
Optimize for the newest supported Intel® Architecture Processor across all nodes |
auto:most |
Optimize for the most numerous Intel® Architecture Processor across all nodes. In case of a tie, choose the newer platform |
uniform |
Optimize locally. The behavior is unpredictable if the resulting selection differs from node to node |
none |
Select no specific optimization |
htn | generic |
Optimize for the Intel® Xeon® Processors 5400 series and other Intel® Architecture processors formerly code named Harpertown |
nhm |
Optimize for the Intel® Xeon® Processors 5500, 6500, 7500 series and other Intel® Architecture processors formerly code named Nehalem |
wsm |
Optimize for the Intel® Xeon® Processors 5600, 3600 series and other Intel® Architecture processors formerly code named Westmere |
snb |
Optimize for the Intel® Xeon® Processors E3, E5, and E7 series and other Intel® Architecture processors formerly code named Sandy Bridge |
ivb |
Optimize for the Intel® Xeon® Processors E3, E5, and E7 V2 series and other Intel® Architecture processors formerly code named Ivy Bridge |
knc |
Optimize for the Intel® Xeon® Processors (codename: Knights Corner). If Intel Xeon Phi coprocessor is present on the cluster, the value is chosen by default |
hsw |
Optimize for the Intel® Xeon® Processors E3, E5, and E7 V3 series and other Intel® Architecture processors formerly code named Haswell |
knl |
Optimize for the Intel® Xeon Phi™ Processor x200 Product Family formerly code named Knights Landing |
Set this variable to use the predefined platform settings. It 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.
Turn on/off the optimization setting similarity check.
I_MPI_PLATFORM_CHECK=<arg>
<arg> |
Binary indicator |
enable | yes | on | 1 |
Turns on the optimization platform similarity check. This is the default value |
disable | no | off | 0 |
Turns off the optimization platform similarity check |
Set this variable to check the optimization platform settings of all processes for similarity. If the settings are not the same on all ranks, the library terminates the program. Disabling this check may reduce the MPI job startup time.
Set this environment variable to initialize the MPI thread environment for the multi-threaded library if MPI_Init() call is used for initialization.
I_MPI_THREAD_LEVEL_DEFAULT=<threadlevel>
<threadlevel> |
Define the default level of thread support |
SINGLE | single |
Set the default level of thread support to MPI_THREAD_SINGLE |
FUNNELED | funneled |
Set the default level of thread support to MPI_THREAD_FUNNELED. This is the default value if MPI_Init() call is used for initialization |
SERIALIZED | serialized |
Set the default level of thread support to MPI_THREAD_SERIALIZED |
MULTIPLE | multiple |
Set the default level of thread support to MPI_THREAD_MULTIPLE |
Set I_MPI_THREAD_LEVEL_DEFAULT to define the default level of thread support for the multi-threaded library if MPI_Init() call is used for initialization.
The environment variable I_MPI_THREAD_LEVEL_DEFAULT is equivalent to the environment variable MPICH_THREADLEVEL_DEFAULT.