This appendix contains tables that summarize the POE environment
variables and command-line flags that are discussed throughout this book. You can set these variables and flags to influence the execution of parallel programs and the operation of certain tools. A command-line flag temporarily overrides its associated environment variable. The tables divide the variables and flags by function:
You can use the POE command-line flags on the pdbx and poe commands. You can also use some of the following flags on program names when individually loading nodes from STDIN or a POE commands file. The flags you can use are mainly those having to do with parallel trace collection. They are:
In the tables that follow, a check mark (X) denotes those flags you
can use when individually loading nodes. For more information on
individually loading nodes, see IBM Parallel Environment
for AIX: Operation and Use, Volume 1.
Table 7. Variables and flags for partition manager control
Table 8. Variables and flags for job specification
| Environment variable Command-line flag | Set: | Possible values | Default |
|---|---|---|---|
|
MP_CKPTDIR | The directory where the checkpoint file will reside. See IBM Parallel Environment for AIX: Operation and Use, Volume 1 for more information. | Any path specifier | The directory from which POE is run |
|
MP_CKPTFILE | The base name of the checkpoint file. See IBM Parallel Environment for AIX: Operation and Use, Volume 1 for more information. | Any file specifier | None |
|
MP_CMDFILE | The name of a POE commands file used to load the nodes of your partition. If set, POE will read the commands file rather than STDIN. | Any file specifier | None |
|
MP_LLFILE | The name of a LoadLeveler job command file for node allocation. If you are performing specific node allocation, you can use a LoadLeveler job command file in conjunction with a host list file. If you do, the specific nodes listed in the host list file will be requested from LoadLeveler. | Any path specifier | None |
|
MP_NEWJOB | Whether or not the partition manager maintains your partition for multiple job steps. |
yes no | no |
|
MP_PGMMODEL | The programming model you are using. |
mpmd spmd | spmd |
|
MP_SAVE_LLFILE | When using LoadLeveler for node allocation, the name of the output LoadLeveler job command file to be generated by the partition manager. The output LoadLeveler job command file will show the LoadLeveler settings that result from the POE environment variables and/or command-line options for the current invocation of POE. If you use the MP_SAVE_LLFILE environment variable for a batch job, or when the MP_LLFILE environment variable is set (indicating that a LoadLeveler job command file should participate in node allocation), POE will show a warning and will not save the output job command file. | Any relative or full path name. | None |
Table 9. Variables and flags for I/O control
| Environment variable Command-line flag | Set: | Possible values | Default |
|---|---|---|---|
|
MP_HOLD_STDIN | Whether or not sending of STDIN from the home node to the remote nodes is deferred until the message passing partition has been established. |
yes no | no |
|
MP_LABELIO | Whether or not output from the parallel tasks is labeled by task id. |
yes no |
no yes (for pdbx) |
|
MP_STDINMODE | The input mode. This determines how input is managed for the parallel tasks. |
| all |
|
MP_STDOUTMODE | The output mode. This determines how STDOUT is handled by the parallel tasks. | One of the following:
| unordered |
Table 10. Variables and flags for diagnostic information
| Environment variable Command-line flag | Set: | Possible values | Default |
|---|---|---|---|
| |||
|
MP_DEBUG_INITIAL_STOP | The initial breakpoint in the application where pdbx will get control. | One of the following:
| The first executable source line in the main routine. |
|
MP_INFOLEVEL -infolevel X | The level of message reporting. | One of the following integers:
| 1 |
|
MP_PMDLOG | Whether or not diagnostic messages should be logged to a file in /tmp on each of the remote nodes. Typically, this environment variable or command-line flag is only used under the direction of the IBM Support Center in resolving a PE-related problem. |
yes no | no |
|
MP_PMDSUFFIX | Determines a string to be appended to the partition manager daemon
service, or executable (when using LoadLeveler).
The PMD service in /etc/services is named pmv3. By setting MP_PMDSUFFIX, you can append a string to pmv3. If MP_PMDSUFFIX is set to abc, for example, the service requested in /etc/services is pmv3abc. When using LoadLeveler, the string is appended to the partition manager daemon executable name, /etc/pmdv3. By setting MP_PMDSUFFIX, you can append a string to pmdv3. If MP_PMDSUFFIX is set to abc, for example, the partition manager daemon that gets run on each node is /etc/pmdv3abc. If the MP_PMD_VERSION environment variable (or -pmd_version flag) is set to a value of 2, the appropriate partition manager daemon service name and executable name is appended to pmv2 and pmdv2 respectively. This permits testing of alternate versions of the partition manager daemon. Typically, this environment variable is used only under the direction of the IBM Support Center in resolving a PE-related problem. | Any string | None |
Table 11. Variables and flags for message passing
| Environment variable Command-line flag | Set: | Possible values | Default |
|---|---|---|---|
|
MP_BUFFER_MEM -buffer_mem
| To change the maximum size of memory used by |
nnnnn nnnK (where: K = 1024 bytes) nnM (where: M = 1024*1024 bytes) |
64MB (US) 2 800 000 bytes (IP) |
|
MP_CLOCK_SOURCE -clock_source
| To use the SP Switch clock as a time source.
See Using the SP Switch clock as a time source for more information. |
AIX SWITCH | None. See Table 2 for more information. |
|
MP_CSS_INTERRUPT -css_interrupt
| To specify whether or not arriving packets generate interrupts.
Using this environment variable may provide better performance for certain applications. Setting this variable explicitly will suppress the MPI-directed switching of interrupt mode, leaving the user in control for the rest of the run. For more information, see MPI_FILE_OPEN in IBM Parallel Environment for AIX: MPI Subroutine Reference. |
yes no | no |
|
MP_EAGER_LIMIT -eager_limit
| To change the threshold value for message size,
above which rendezvous protocol is used. To ensure that at least 32 messages can be outstanding between any two tasks, MP_EAGER_LIMIT will be adjusted based on the number of tasks according to the table in the Default column, when the user has specified neither MP_BUFFER_MEM, nor MP_EAGER_LIMIT, nor MP_USE_FLOW_CONTROL. | An integer less than or equal to 64K, in one of these formats:
nnnnn nnnK (where: K = 1024 bytes) |
Number Default
of Tasks Value
---------------------
1 to 16 4096
17 to 32 2048
33 to 64 1024
65 to 128 512
129 to 256 256
257 to the 128
maximum
number of tasks
supported by the
implementation
|
|
MP_HINTS_FILTERED -hints_filtered
| To specify whether or not MPI info objects reject hints
(key and value pairs) that are not meaningful to the MPI implementation. |
yes no | yes |
|
MP_IO_BUFFER_SIZE -io_buffer_size
| To specify the default size of the data buffer used by MPI-IO agents. | An integer less than or equal to 128M, in one of these formats:
nnnnn nnnK (where: K = 1024 bytes) nnnM (where: M = 1024*1024 bytes) | The number of bytes that corresponds to 16 file blocks. |
|
MP_IO_ERRLOG -io_errlog
| To specify whether or not to turn on I/O error logging. |
yes no |
no |
|
MP_IONODEFILE -ionodefile
| To specify the name of a parallel I/O node file -- a text
file that lists the nodes that should be handling parallel I/O. Setting this variable enables you to limit the number of nodes that participate in parallel I/O or to guarantee that all I/O operations are performed on the same node. See IBM Parallel Environment for AIX: Operation and Use, Volume 1 for more information. | Any relative path name or full path name. | None. All nodes will participate in parallel I/O. |
|
MP_INTRDELAY -intrdelay
| To tune the delay parameter without having to | An integer greater than or equal to 0 | 1 |
|
MP_MAX_TYPEDEPTH -max_typedepth
| To change the maximum depth | An integer greater than or equal to 1 | 5 |
|
MP_MSG_API | To indicate to POE which message-passing API is being used by the parallel tasks. You need to set this environment variable if a parallel task is using LAPI alone or in conjunction with MPI. You do not need to set it if a parallel task is using MPI only. | MPI LAPI or MPI,LAPI | MPI |
|
MP_PIPE_SIZE -pipe_size
| To use the selected pipe size
(16KB, 32KB, or 64KB) as the transmission buffer to communicate between tasks on a job. This is only effective if you are using the SP Switch2 and user space jobs. | 16, 32, or 64 | 64 |
|
MP_POLLING_INTERVAL -polling_interval
| To change the polling interval | An integer between 1 and 2 billion |
180 000 (IP) 400 000 (US) |
|
MP_RETRANSMIT_INTERVAL -retransmit_interval
| To control how often the communication subsystem library checks
to see if it should retransmit packets that have not been acknowledged. The value nnnn is the number of polling loops between checks. | An integer between 1000 and 400 000 |
10 000 (IP) 400 000 (US) |
|
MP_SHARED_MEMORY -shared_memory
| To specify the use of shared memory (instead of IP or the SP Switch) |
yes no | no |
|
MP_SINGLE_THREAD -single_thread
| To avoid lock overheads in a program
that is known to be single-threaded. Neither MPI-IO nor MPI 1-sided communication can be used if this variable is set to yes. Results are undefined if this variable is set to yes with multiple message threads in use. See Using MPI_INIT or MPI_INIT_THREAD for more information. |
yes no | no |
|
MP_SYNC_ON_CONNECT (no associated command-line flag)
| To disable the internal synchronization of MPI initialization,
thereby reducing the amount of network traffic. Applications that involve a large number of tasks may benefit from setting this environment variable to no. MP_SYNC_ON_CONNECT should only be set to no when it is certain that the network hardware and software are sound, and the application involves a large number of tasks that might otherwise flood the network. |
yes no |
yes
|
|
MP_THREAD_STACKSIZE -thread_stacksize
| To specify the additional stack size allocated for user subroutines
running on an MPI service thread. If you do not allocate enough space, the program may encounter a SIGSEGV exception or more subtle failures. |
nnnnn nnnK (where: K = 1024 bytes) nnM (where: M = 1024*1024 bytes) | 0 |
|
MP_TIMEOUT (no associated command-line flag)
| To change the length of time (in seconds) the communication
subsystem will wait for a connection to be established during message-passing initialization. | Any number greater than 0. If set to 0 or a negative number, the value is ignored. | 150 |
|
MP_USE_FLOW_CONTROL -use_flow_control
|
To throttle the sender before the number of outstanding eager send messages can overflow the early arrival buffer at a destination. Flow control insures that programs with weak synchronization and aggressive use of small messages will never overflow early arrival buffers. When flow control is on, the setting of this variable affects the default
value of MP_EAGER_LIMIT for 16 or more tasks, if the user has
specified neither MP_BUFFER_MEM nor MP_EAGER_LIMIT.
|
yes no | yes |
|
MP_WAIT_MODE -wait_mode
| To specify how a thread or task behaves when it discovers it is |
nopoll poll sleep yield |
poll (for US) poll (for IP on SMP nodes, if the number of tasks for this job on the node does not exceed the number of processors on the node) otherwise: sleep
|
Table 12. Variables and flags for core file generation
| Environment variable Command-line flag | Set: | Possible values | Default |
|---|---|---|---|
|
MP_COREDIR | To create a separate directory for each task's core file. | Any valid directory name, or none to bypass creating a new directory. | coredir.taskid |
|
MP_COREFILE_FORMAT | The format of core files generated when processes terminate abnormally. | The string STDERR (to specify that the lightweight core file information should be written to standard error) or any other string (to specify the lightweight core file name). | Standard AIX core files are generated if this variable (or flag) is not set or specified. |
Table 13. Other variables and flags
| Environment variable Command-line flag | Set: | Possible values | Default |
|---|---|---|---|
| MP_DBXPROMPTMOD | A modified dbx prompt. The dbx prompt \n(dbx) is used by the pdbx command as an indicator denoting that a dbx subcommand has completed. This environment variable modifies that prompt. Any value assigned to it will have a "." prepended and will then be inserted in the \n(dbx) prompt between the "x" and the ")". This environment variable is useful when the string \n(dbx) is present in the output of the program being debugged. | Any string. | None |
|
MP_EUIDEVELOP | Whether or not the message passing interface performs more detailed checking during execution. This additional checking is intended for developing applications, and can significantly slow performance. You can also enable and disable parameter checking with deb (for "debug") and min (for "minimum"). |
| no |
|
MP_FENCE | A "fence" character string for separating arguments you want parsed by POE from those you do not. | Any string. | None |
|
MP_NOARGLIST | Whether or not POE ignores the argument list. If set to yes, POE will not attempt to remove POE command-line flags before passing the argument list to the user's program. |
yes no | no |
|
MP_PMLIGHTS | The number of lights displayed (per row) on the program marker array. | An integer greater than or equal to 0. | 0 |
|
MP_PRIORITY | A dispatch priority class for execution. See IBM Parallel Environment for AIX: Installation for more information on dispatch priority classes. | Any of the dispatch priority classes set up by the system administrator in the file /etc/poe.priority. | None |
|
MP_USRPORT | The port ID used by the partition manager to connect to the program marker array. | Any positive integer less than 32 767. Standard TCP/IP practice suggests using ports greater than 5000 and less than 10 000. | 9999 |