# -*- text -*-
#
# Copyright (c) 2025-2026 Nanook Consulting  All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# This is the US/English general help file for PRTE's prterun.
#
[version]

%s (%s) %s

%s
#
[usage]

%s (%s) %s

Usage: %s [OPTION]...

Initiate an instance of the PMIx Reference RTE (PRRTE) DVM

The following list of command line options are available. Note that
more detailed help for any option can be obtained by adding that
option to the help request as "--help <option>".

+----------------------+-----------------------------------------------+
|                      | General Options                               |
+----------------------+-----------------------------------------------+
| Option               | Description                                   |
|======================|===============================================|
| "-h" | "--help"      | This help message                             |
+----------------------+-----------------------------------------------+
| "-h" | "--help       | Help for the specified option                 |
| <arg0>"              |                                               |
+----------------------+-----------------------------------------------+
| "-v" | "--verbose"   | Enable typical debug options                  |
+----------------------+-----------------------------------------------+
| "-V" | "--version"   | Print version and exit                        |
+----------------------+-----------------------------------------------+

+----------------------+-----------------------------------------------+
|                      | Debug Options                                 |
+----------------------+-----------------------------------------------+
| Option               | Description                                   |
|======================|===============================================|
| "--debug-daemons"    | Debug daemons — if not set, any "verbose"     |
|                      | settings will be limited to the prterun       |
|                      | itself to reduce clutter                      |
+----------------------+-----------------------------------------------+
| "--debug-daemons-    | Enable debugging of any PRRTE daemons used by |
| file"                | this application, storing their verbose       |
|                      | output in files                               |
+----------------------+-----------------------------------------------+
| "--display <arg0>"   | Options for displaying information about the  |
|                      | allocation and job.                           |
+----------------------+-----------------------------------------------+
| "--spawn-timeout     | Timeout the job if spawn takes more than the  |
| <seconds>"           | specified number of seconds                   |
+----------------------+-----------------------------------------------+
| "--timeout           | Timeout the job if execution is not complete  |
| <seconds>"           | after the specified number of seconds         |
+----------------------+-----------------------------------------------+
| "--get-stack-traces" | Get stack traces of all application procs on  |
|                      | timeout                                       |
+----------------------+-----------------------------------------------+
| "--leave-session-    | Do not discard stdout/stderr of remote PRRTE  |
| attached"            | daemons                                       |
+----------------------+-----------------------------------------------+
| "--report-state-on-  | Report all job and process states upon        |
| timeout"             | timeout                                       |
+----------------------+-----------------------------------------------+
| "--stop-on-exec"     | If supported, stop each specified process at  |
|                      | start of execution                            |
+----------------------+-----------------------------------------------+
| "--stop-in-init"     | Direct the specified processes to stop in     |
|                      | "PMIx_Init"                                   |
+----------------------+-----------------------------------------------+
| "--stop-in-app"      | Direct the processes to stop at an            |
|      [=breakpoint]   | application-controlled location, optionally   |
|                      | naming the breakpoint at which to stop        |
+----------------------+-----------------------------------------------+
| "--no-aggregate-     | Do not aggregate help messages issued by      |
| help"                | multiple processes - report each one as it is |
|                      | received                                      |
+----------------------+-----------------------------------------------+

+----------------------+-----------------------------------------------+
|                      | Output Options                                |
+----------------------+-----------------------------------------------+
| Option               | Description                                   |
|======================|===============================================|
| "--output <arg0>"    | Comma-delimited list of options that control  |
|                      | how output is generated.                      |
+----------------------+-----------------------------------------------+
| "--xterm <ranks>"    | Create a new xterm window for each of the     |
|                      | comma-delimited ranges of application process |
|                      | ranks                                         |
+----------------------+-----------------------------------------------+

+----------------------+-----------------------------------------------+
|                      | Input Options                                 |
+----------------------+-----------------------------------------------+
| Option               | Description                                   |
|======================|===============================================|
| "--stdin <rank>"     | Specify the process to receive stdin ["all",  |
|                      | "none", or a single rank] (default: "0",      |
|                      | indicating rank 0)                            |
+----------------------+-----------------------------------------------+

+----------------------+-----------------------------------------------+
|                      | Placement Options                             |
+----------------------+-----------------------------------------------+
| Option               | Description                                   |
|======================|===============================================|
| "--mapby <type>" |   | Mapping Policy for job or for individual app  |
| "--map-by <type>"    |                                               |
+----------------------+-----------------------------------------------+
| "--rankby <type>" |  | Ranking Policy for job or for individual app  |
| "--rank-by <type>"   |                                               |
+----------------------+-----------------------------------------------+
| "--bindto <type>" |  | Binding policy for job or for individual app  |
| "--bind-to <type>"   |                                               |
+----------------------+-----------------------------------------------+

+----------------------+-----------------------------------------------+
|                      | Launch Options                                |
+----------------------+-----------------------------------------------+
| Option               | Description                                   |
|======================|===============================================|
| "--rtos <arg0>" |    | Comma-delimited list of runtime directives    |
| "--runtime-options   | for the job (e.g., do not abort if a process  |
| <arg0>"              | exits on non-zero status)                     |
+----------------------+-----------------------------------------------+
| "-c" | "--np <num>"  | Number of processes to run                    |
+----------------------+-----------------------------------------------+
| "-n" | "--n <num>"   | Number of processes to run                    |
+----------------------+-----------------------------------------------+
| "-N" | "--npernode   | Run designated number of processes on each    |
| <num>"               | node                                          |
+----------------------+-----------------------------------------------+
| "--app <filename>"   | Provide an appfile listing the application    |
|                      | contexts to launch                            |
+----------------------+-----------------------------------------------+
| "--personality       | Specify the personality to be used            |
| <name>"              |                                               |
+----------------------+-----------------------------------------------+
| "-H" | "--host       | List of hosts to invoke processes on          |
| <hosts>"             |                                               |
+----------------------+-----------------------------------------------+
| "--add-host <hosts>" | List of hosts to add to the DVM prior to      |
|                      | launching the given app                       |
+----------------------+-----------------------------------------------+
| "--activate <hosts>" | List of allocated nodes to bring into the DVM |
|                      | (start a daemon on) prior to launching the    |
|                      | given app                                     |
+----------------------+-----------------------------------------------+
| "--hostfile <file>"  | Provide a hostfile                            |
+----------------------+-----------------------------------------------+
| "--machinefile       | Provide a hostfile (synonym for "--hostfile") |
| <file>"              |                                               |
+----------------------+-----------------------------------------------+
| "--default-hostfile  | Provide a default hostfile                    |
| <file>"              |                                               |
+----------------------+-----------------------------------------------+
| "--path <path>"      | PATH to be used to look for executables to    |
|                      | start processes                               |
+----------------------+-----------------------------------------------+
| "--add-hostfile      | Provide a hostfile listing hosts to add to    |
| <file>"              | the DVM prior to launching the given app      |
+----------------------+-----------------------------------------------+
| "--pmixmca <key>     | Pass context-specific PMIx MCA parameters;    |
| <value>"             | they are considered global if only one        |
|                      | context is specified ("key" is the parameter  |
|                      | name; "value" is the parameter value)         |
+----------------------+-----------------------------------------------+
| "--preload-files     | Preload the comma separated list of files to  |
| <files>"             | the remote machines current working directory |
|                      | before starting the remote process.           |
+----------------------+-----------------------------------------------+
| "-s" | "--preload-   | Preload the binary on the remote machine      |
| binary"              | before starting the remote process.           |
+----------------------+-----------------------------------------------+
| "--app-pmix-prefix <dir>" | Prefix to be used by app procs to look   |
|                      | for their PMIx installation on remote nodes.  |
|                      | This is the location of the top-level         |
|                      | directory for the installation. In the        |
|                      | absence of providing an application-specific  |
|                      | prefix, the PMIx prefix (if given) used by    |
|                      | PRRTE's own executables will be applied       |
|                      | unless the "--no-app-prefix" directive is     |
|                      | given.                                        |
+----------------------+-----------------------------------------------+
| "--no-app-prefix"    | Do not provide a prefix directive to this     |
|                      | application.                                  |
+----------------------+-----------------------------------------------+
| "--pset <name>"      | User-specified name assigned to the processes |
|                      | in their given application                    |
+----------------------+-----------------------------------------------+
| "--set-cwd-to-       | Set the working directory of the started      |
| session-dir"         | processes to their session directory          |
+----------------------+-----------------------------------------------+
| "--wd <dir>"         | Synonym for "--wdir"                          |
+----------------------+-----------------------------------------------+
| "--wdir <dir>"       | Set the working directory of the started      |
|                      | processes                                     |
+----------------------+-----------------------------------------------+
| "-x <name>"          | Export an environment variable, optionally    |
|                      | specifying a value (e.g., "-x foo" exports    |
|                      | the environment variable foo and takes its    |
|                      | value from the current environment; "-x       |
|                      | foo=bar" exports the environment variable     |
|                      | name foo and sets its value to "bar" in the   |
|                      | started processes; "-x foo*" exports all      |
|                      | current environmental variables starting with |
|                      | "foo")                                        |
+----------------------+-----------------------------------------------+
| "--set-env           | Set the named environmental variable to the   |
|     <name>=<value>"  | specified value. This will overwrite the      |
|                      | existing value, if it exists. Equivalent to   |
|                      | the "-x foo=val" option                       |
+----------------------+-----------------------------------------------+
| "--unset-env <name>" | Unset the named environmental variable. Note  |
|                      | "--unset-env foo*" unsets all current         |
|                      | environmental variables starting with "foo"   |
+----------------------+-----------------------------------------------+
| "--append-env        | Append the named environment variable with    |
| <name[c]> <value>"   | given value. The "[c]" must be appended to    |
|                      | the name to specify the separator to be used  |
|                      | when appending the value.                     |
+----------------------+-----------------------------------------------+
| "--prepend-env       | Prepend the named environment variable with   |
| <name[c]> <value>"   | given value. The "[c]" must be appended to    |
|                      | the name to specify the separator to be used  |
|                      | when prepending the value.                    |
+----------------------+-----------------------------------------------+
| "--gpu-support <val>"| Direct application to either enable (true) or |
|                      | disable (false) its internal library's GPU    |
|                      | support                                       |
+----------------------+-----------------------------------------------+
| "--memory-alloc-     | Comma-delimited list of memory allocation     |
| kinds <kinds>"       | kinds the application requires (passed to the |
|                      | application's library via PMIx)               |
+----------------------+-----------------------------------------------+
| "--alloc-id <val>"   | ID assigned by the host environment to the    |
|                      | allocation to be used for mapping the job     |
+----------------------+-----------------------------------------------+
| "--alloc-refid <val>"| Reference ID assigned by the user when the    |
|                      | allocation to be used for mapping the job     |
|                      | was requested                                 |
+----------------------+-----------------------------------------------+
| "--session-id <val>" | ID of the session whose allocation is to      |
|                      | be used for mapping the job                   |
+----------------------+-----------------------------------------------+

+----------------------+-----------------------------------------------+
|                      | Specific Options                              |
+----------------------+-----------------------------------------------+
| Option               | Description                                   |
|======================|===============================================|
| "--allow-run-as-     | Allow execution as root (**STRONGLY           |
| root"                | DISCOURAGED**)                                |
+----------------------+-----------------------------------------------+
| "--prtemca <key>     | Pass context-specific PRRTE MCA parameters to |
| <value>"             | the DVM                                       |
+----------------------+-----------------------------------------------+
| "--forward-signals   | Comma-delimited list of the signals (names or |
| <signals>"           | integers) to be forwarded to application      |
|                      | processes, replacing the default set ["none"  |
|                      | => forward nothing]                           |
+----------------------+-----------------------------------------------+
| "--keepalive <arg0>" | Pipe to monitor — DVM will terminate upon     |
|                      | closure                                       |
+----------------------+-----------------------------------------------+
| "--launch-agent      | Name of daemon executable used to start       |
| <exe>"               | processes on remote nodes (default: "prted")  |
+----------------------+-----------------------------------------------+
| "--max-vm-size       | Number of daemons to start                    |
| <num>"               |                                               |
+----------------------+-----------------------------------------------+
| "--system-server"    | Start prterun and its daemons as the system   |
|                      | server on their nodes                         |
+----------------------+-----------------------------------------------+
| "--noprefix"         | Disable automatic "--prefix" behavior         |
+----------------------+-----------------------------------------------+
| "--prefix <dir>"     | Prefix to be used to look for RTE executables |
|                      | AND their libraries on remote nodes. Note     |
|                      | that an assumption is made that the libraries |
|                      | will be located at the same subdirectory as   |
|                      | per the configuration options given when      |
|                      | PRRTE was built.                              |
+----------------------+-----------------------------------------------+
| "--pmix-prefix <dir>" | Prefix to be used to look for the PMIx       |
|                      | library used by RTE executables on remote     |
|                      | nodes. This is the location of the top-level  |
|                      | directory for the installation.               |
+----------------------+-----------------------------------------------+
| "--report-pid        | Print out PID on stdout ("-"), stderr ("+"),  |
| <arg0>"              | or a file [anything else]                     |
+----------------------+-----------------------------------------------+
| "--report-uri        | Print out URI on stdout ("-"), stderr ("+"),  |
| <arg0>"              | or a file [anything else]                     |
+----------------------+-----------------------------------------------+
| "--set-sid"          | Direct the DVM daemons to separate from the   |
|                      | current session                               |
+----------------------+-----------------------------------------------+
| "--tune <files>"     | File(s) containing MCA params for tuning DVM  |
|                      | operations                                    |
+----------------------+-----------------------------------------------+
| "--dvm <arg>"        | Use a persistent DVM instead of instantiating |
|                      | independent runtime infrastructure. The       |
|                      | argument indicates the PID, URI, file         |
|                      | containing the URI, or namespace of the DVM.  |
+----------------------+-----------------------------------------------+
| "--uniform-nodes"    | The allocation contains only one topology,    |
|                      | so optimize the launch for that scenario.     |
|                      | This includes ensuring that all CPU           |
|                      | allocations are the same on each node, that   |
|                      | each node contains the same number of devices |
|                      | and topological layers, etc.                  |
+----------------------+-----------------------------------------------+


%s
#
[dvm]

A required argument is passed to the "--dvm" directive to specify the
location of the DVM controller (e.g., "--dvm pid:12345") or by passing
the string "search" to instead search for an existing controller.

Supported options include:

* "search": directs the tool to search for available DVM controllers it
  is authorized to use, connecting to the first such candidate it finds.

* "pid:<arg>": provides the PID of the target DVM controller. This can
  be given as either the PID itself (arg = int) or the path to a file
  that contains the PID (arg = "file:<path>")

* "file:<path>": provides the path to a PMIx rendezvous file that is
  output by PMIx servers — the file contains all the required
  information for completing the connection

* "uri:<arg>": specifies the URI of the DVM controller, or the name of
  the file (specified as "file:filename") that contains that info

* "ns:<arg>": specifies the namespace of the DVM controller

* "system": exclusively find and use the system-level DVM controller

* "system-first": look for a system-level DVM controller, fall back to
  searching for an available DVM controller the command is authorized to
  use if a system-level controller is not found

Examples:

   prterun --dvm file:dvm_uri.txt --np 4 ./a.out

   prterun --dvm pid:12345 --np 4 ./a.out

   prterun --dvm uri:file:dvm_uri.txt --np 4 ./a.out

   prterun --dvm ns:prte-node1-2095 --np 4 ./a.out

   prterun --dvm pid:file:prte_pid.txt --np 4 ./a.out

   prterun --dvm search --np 4 ./a.out
#
[uniform-nodes]

The "uniform-nodes" command line directive is used to indicate that the
allocated nodes should be treated as having only one topology, so
optimize the launch for that scenario. This includes ensuring that all
CPU allocations are the same on each node, that each node contains the
same number of devices and topological layers, etc.

Note:

  The runtime does not currently support mixes of chips with different
  endianness.
#
[prtemca]

Pass a PRRTE MCA parameter.

Syntax: "--prtemca <key> <value>", where "key" is the parameter name and
"value" is the parameter value.
#
[pmixmca]

Pass a PMIx MCA parameter

Syntax: "--pmixmca <key> <value>", where "key" is the parameter name and
"value" is the parameter value.
#
[tune]

Comma-delimited list of one or more files containing MCA parameters for
tuning DVM and/or application operations. The option may be given more
than once. A file named by a relative path is looked for first in the
current directory and then among the parameter sets installed with
PRRTE.

Syntax in the file is:

   param = value

with one parameter per line. Empty lines and lines beginning with the
"#" character are ignored, as is any whitespace around the "="
character. Quotes around the value are removed.

Each parameter is a *generic* MCA parameter, so it is treated exactly
like "--mca param value": it is applied to PRRTE if it belongs to a
PRRTE framework, and otherwise to PMIx. A parameter that belongs to
neither is an error, as is a parameter given twice with different
values. A parameter given explicitly on the command line ("--prtemca",
"--pmixmca") overrides the same parameter in a tune file.
#
[system-server]

Start prterun and its daemons as the system server on their nodes
#
[set-sid]

Direct the DVM (controller and daemons) to separate from the current
session
#
[report-pid]

Print the PID of this process: on stdout if the argument is "-", on
stderr if it is "+", into the already-open file descriptor it names if
it is a non-negative integer, and otherwise into the file it names.
#
[report-uri]

Print the PMIx contact URI of this process: on stdout if the argument is
"-", on stderr if it is "+", and otherwise into the file it names.
#
[keepalive]

Pipe for prterun to monitor — job will terminate upon closure
#
[launch-agent]

Name of daemon executable used to start processes on remote nodes
(default: "prted").

This is the executable prterun shall start on each remote node when
establishing the DVM.
#
[max-vm-size]

Maximum number of daemons to start
#
[debug-daemons]

Debug daemon output enabled. This is a somewhat limited stream of
information normally used to simply confirm that the daemons started.
Includes leaving the output streams open.
#
[debug-daemons-file]

Debug daemon output is enabled and all output from the daemons is
redirected into files with names of the form:

   output-prted-<daemon-nspace>-<nodename>.log

These names avoid conflict on shared file systems. The files are located
in the top-level session directory assigned to the DVM.

See the "Session directory" HTML documentation for additional details
about the PRRTE session directory.
#
[leave-session-attached]

Do not discard stdout/stderr of remote PRRTE daemons. The primary use
for this option is to ensure that the daemon output streams (i.e.,
stdout and stderr) remain open after launch, thus allowing the user to
see any daemon-generated error messages. Otherwise, the daemon will
"daemonize" itself upon launch, thereby closing its output streams.
#
[prefix]

Prefix to be used to look for PRRTE executables. PRRTE automatically
sets the prefix for remote daemons if it was either configured with the
"--enable-prte-prefix-by-default" option OR prte itself was executed
with an absolute path to the prte command. This option overrides those
settings, if present, and forces use of the provided path.
#
[noprefix]

Disable automatic "--prefix" behavior. PRRTE automatically sets the
prefix for remote daemons if it was either configured with the
"--enable-prte-prefix-by-default" option OR prte itself was executed
with an absolute path to the "prte" command. This option disables that
behavior.
#
[pmix-prefix]

Prefix to be used by a PRRTE executable to look for its PMIx
installation on remote nodes. This is the location of the top-level
directory for the installation. If the installation has not been moved,
it would be the value given to "--prefix" when the installation was
configured.

Note that PRRTE cannot determine the exact name of the library
subdirectory under this location. For example, some systems will call it
"lib" while others call it "lib64". Accordingly, PRRTE will use the
library subdirectory name of the PMIx installation used to build PRRTE.
#
[app-pmix-prefix]

Prefix to be used by an app to look for its PMIx installation on remote
nodes. This is the location of the top-level directory for the
installation. If the installation has not been moved, it would be the
value given to "--prefix" when the installation was configured.

Note that PRRTE cannot determine the exact name of the library
subdirectory under this location. For example, some systems will call it
"lib" while others call it "lib64". Accordingly, PRRTE will use the
library subdirectory name of the PMIx installation used to build PRRTE.

In the absence of providing an application-specific prefix, the PMIx
prefix (if given) used by PRRTE's own executables will be applied unless
the "--no-app-prefix" directive is given.
#
[no-app-prefix]

Do not apply any prefix to this application. This is needed when a
default PMIx prefix has been given to PRRTE, but the application has
been built against a PMIx library that (a) is different from the one
used by PRRTE, and (b) was not moved. Otherwise, PRRTE will apply its
default prefix to the application.
#
[set-env]

Set the named environmental variable to the specified value. This will
overwrite the existing value, if it exists. Equivalent to the "-x
foo=val" option.

These directives are applied in the order they are given on the command
line. "--set-env" replaces a value outright while "--prepend-env" and
"--append-env" edit the value already there, so the order is the result:
"--set-env FOO=1 --prepend-env FOO[:] x" leaves "FOO=x:1", while
"--prepend-env FOO[:] x --set-env FOO=1" leaves "FOO=1".
#
[unset-env]

Unset the named environmental variable. Note "--unset-env foo*" unsets
all current environmental variables starting with "foo".

These directives are applied in the order they are given on the command
line. "--set-env" replaces a value outright while "--prepend-env" and
"--append-env" edit the value already there, so the order is the result:
"--set-env FOO=1 --prepend-env FOO[:] x" leaves "FOO=x:1", while
"--prepend-env FOO[:] x --set-env FOO=1" leaves "FOO=1".
#
[append-env]

Append the given value to the named environment variable. The "[c]" must
be appended to the name to specify the separator to be used when
appending the value. For example:

   --append-env LD_LIBRARY_PATH[:] foo/lib

will result in:

   LD_LIBRARY_PATH=$LD_LIBRARY_PATH:foo/lib

These directives are applied in the order they are given on the command
line. "--set-env" replaces a value outright while "--prepend-env" and
"--append-env" edit the value already there, so the order is the result:
"--set-env FOO=1 --prepend-env FOO[:] x" leaves "FOO=x:1", while
"--prepend-env FOO[:] x --set-env FOO=1" leaves "FOO=1".
#
[prepend-env]

Prepend the given value to the named environment variable. The "[c]"
must be appended to the name to specify the separator to be used when
prepending the value. For example:

   --prepend-env LD_LIBRARY_PATH[:] foo/lib

will result in:

   LD_LIBRARY_PATH=foo/lib:$LD_LIBRARY_PATH

These directives are applied in the order they are given on the command
line. "--set-env" replaces a value outright while "--prepend-env" and
"--append-env" edit the value already there, so the order is the result:
"--set-env FOO=1 --prepend-env FOO[:] x" leaves "FOO=x:1", while
"--prepend-env FOO[:] x --set-env FOO=1" leaves "FOO=1".
#
[gpu-support]

Direct the application to either enable ("true") or disable ("false")
its internal library's GPU support. The value is passed to the
application's library via PMIx; a value that is neither true nor false
is refused.
#
[memory-alloc-kinds]

Comma-delimited list of the memory allocation kinds the application
requires. The list is passed through to the application's library (for
example, an MPI implementation) via PMIx; PRRTE itself does not
interpret the individual kinds.
#
[no-aggregate-help]

Do not aggregate help messages issued by the application processes.

By default, identical help output generated by many processes is
combined into a single report naming the number of processes that hit
it. This option turns that off, so every process's message is reported
as it is received.
#
[alloc-id]

Direct that the application be executed using the resources of the
allocation identified by the given ID, where that ID is the one the host
environment (e.g., the scheduler) assigned to the allocation when it was
created. The DVM reports this value back to the requester when an
allocation request completes, and it is the value returned by a query of
the allocation.

The named allocation must be one the requester is entitled to use — a
job can only be spawned onto resources its requester has been granted.
Entitlement is by namespace and by user: the namespace that requested
the allocation holds it, as does every job spawned into it, and so does
any tool run by the user the allocation was granted to. That last part
is what lets a later command reach an allocation an earlier one created,
since a tool's namespace lasts only as long as the command that made it.

Naming an allocation the DVM does not know about is an unrecoverable
error and reports "PMIX_ERR_NOT_FOUND"; naming one the requester may not
use is likewise unrecoverable and reports "PMIX_ERR_NO_PERMISSIONS". In
either case the job is not launched.

If no allocation is named, the job is mapped onto the allocation of the
session that requested it (the DVM's default session, in the case of a
tool such as "prun").

Note:

  The same allocation can be named in three different ways — by the
  host-assigned ID given here, by the reference ID the user attached
  to the allocation request ("--alloc-refid"), or by the numerical ID
  of the session that holds it ("--session-id"). These are alternative
  spellings of one directive and therefore cannot be combined on a
  single command line.
#
[alloc-refid]

Direct that the application be executed using the resources of the
allocation identified by the given reference ID, where that ID is the
one *the user* attached to the allocation request at the time the
allocation was made. This is the convenient counterpart to "--alloc-id":
it lets a script name an allocation using a label it chose itself,
without having to capture the identifier the host environment later
assigned to it.

The named allocation must be one the requester is entitled to use — a
job can only be spawned onto resources its requester has been granted.
Entitlement is by namespace and by user: the namespace that requested
the allocation holds it, as does every job spawned into it, and so does
any tool run by the user the allocation was granted to. That last part
is what lets a later command reach an allocation an earlier one created,
since a tool's namespace lasts only as long as the command that made it.

Naming an allocation the DVM does not know about is an unrecoverable
error and reports "PMIX_ERR_NOT_FOUND"; naming one the requester may not
use is likewise unrecoverable and reports "PMIX_ERR_NO_PERMISSIONS". In
either case the job is not launched.

If no allocation is named, the job is mapped onto the allocation of the
session that requested it (the DVM's default session, in the case of a
tool such as "prun").

Note:

  The same allocation can be named in three different ways — by the
  reference ID given here, by the ID the host environment assigned to
  the allocation ("--alloc-id"), or by the numerical ID of the session
  that holds it ("--session-id"). These are alternative spellings of
  one directive and therefore cannot be combined on a single command
  line.
#
[session-id]

Direct that the application be executed using the resources of the
session identified by the given numerical ID. A *session* is the
container the DVM uses to hold an allocation together with the jobs
running against it, and every allocation the DVM grants is assigned one.
The session ID is reported back to the requester when an allocation
request completes.

The value must be an unsigned 32-bit integer; anything else is rejected
before the job is submitted.

The named session must be one the requester is entitled to use — a job
can only be spawned onto resources its requester has been granted.
Entitlement is by namespace and by user: the namespace that requested
the session's allocation holds it, as does every job spawned into it,
and so does any tool run by the user it was granted to. That last part
is what lets a later command reach a session an earlier one created,
since a tool's namespace lasts only as long as the command that made it.

Naming a session the DVM does not know about is an unrecoverable error
and reports "PMIX_ERR_NOT_FOUND"; naming one the requester may not use
is likewise unrecoverable and reports "PMIX_ERR_NO_PERMISSIONS". In
either case the job is not launched.

If no session is named, the job is mapped onto the session that
requested it (the DVM's default session, in the case of a tool such as
"prun").

Note:

  The same allocation can be named in three different ways — by the
  session ID given here, by the ID the host environment assigned to
  the allocation ("--alloc-id"), or by the reference ID the user
  attached to the allocation request ("--alloc-refid"). These are
  alternative spellings of one directive and therefore cannot be
  combined on a single command line.
#
[forward-signals]

Comma-delimited list of the signals (names or integers) to be forwarded
to application processes ("none" = forward nothing).

The list *replaces* the default set rather than adding to it, so it
names every signal that is to be forwarded. The default set, used when
this option is not given, is SIGTSTP, SIGUSR1, SIGUSR2, SIGABRT,
SIGALRM, and SIGCONT.
#
[allow-run-as-root]

Allow execution as root **(STRONGLY DISCOURAGED)**.

Running as root exposes the user to potentially catastrophic file system
corruption and damage — e.g., if the user accidentally points the root
of the session directory to a system required point, this directory and
all underlying elements will be deleted upon job completion, thereby
rendering the system inoperable.

It is recognized that some environments (e.g., containers) may require
operation as root, and that the user accepts the risks in those
scenarios. Accordingly, one can override PRRTE's run-as-root protection
by providing one of the following:

* The "--allow-run-as-root" command line directive

* Adding **BOTH** of the following environmental parameters:

    * "PRTE_ALLOW_RUN_AS_ROOT=1"
    * "PRTE_ALLOW_RUN_AS_ROOT_CONFIRM=1"

Again, we recommend this only be done if absolutely necessary.
#
[timeout]

Timeout the job if execution is not complete after the specified number
of seconds. The value must be a non-negative integer; zero means no
timeout. If this option is not given, the value of the "MPIEXEC_TIMEOUT"
environment variable, if set, is used instead. See also
"--report-state-on-timeout" and "--get-stack-traces".
#
[report-state-on-timeout]

Report all job and process states upon timeout.
#
[get-stack-traces]

Get stack traces of all application processes still executing upon
timeout.
#
[spawn-timeout]

Timeout the job if spawn takes more than the specified number of
seconds.
#
[np]

Specify the number of application processes to be started for this
application context. "-n", "-c" and "--n" are synonyms for "--np".
#
[n]

Specify the number of application processes to be started for this
application context. "-n", "-c" and "--n" are synonyms for "--np".
#
[N]

Specify the number of application processes to be started on each node.
"-N <num>" is shorthand for the placement directive "--mapby
ppr:<num>:node", and is converted to it.
#
[app]

Provide an appfile describing the application contexts to be launched.
Each line of the file that is neither blank nor a comment (a line whose
first non-blank character is "#") describes one application context,
written as it would be on the command line: the options that apply to
that context, followed by the executable and its arguments. Lines are
split at spaces; quotes are not interpreted.

Options given on the command line alongside "--app" are combined with
the first application context in the file, so job-level options (such as
"--mapby") apply to the whole job as usual, while an option that is also
given on the file's first line is refused as a duplicate. The command
line may not also name an application — an executable, or a
":"-separated application context — as well.
#
[xterm]

Display the output of the specified application processes in their own
xterm window. Ranks are given as a comma-delimited list of ranks and
inclusive ranges (for example, "1,3-6,9"), or as "all". A trailing "!"
(for example, "1,3!") keeps each window open after its process exits.
The xterm is started by the daemon on the node where the process runs,
so it needs a usable "DISPLAY" there: forward it with "-x DISPLAY", or
start the DVM with an "ssh -X" launch agent.
#
[stop-on-exec]

If supported by the platform, stop each application process immediately
upon exec'ing it, pending release by a debugger. The directive applies
to all processes in the job. This is the same as "--rtos stop-on-exec".
#
[stop-in-init]

Include the "PMIX_DEBUG_STOP_IN_INIT" attribute in the application's job
info directing that the processes stop in "PMIx_Init" pending release.
The directive applies to all processes in the job. This is the same as
"--rtos stop-in-init".
#
[stop-in-app]

Include the "PMIX_DEBUG_STOP_IN_APP" attribute in the application's job
info directing that the processes stop at an application-determined
point pending release. The directive applies to all processes in the
job. This is the same as "--rtos stop-in-app".

An optional argument names the one breakpoint at which they are to stop
— e.g., "--stop-in-app=mpi-init". PRRTE cannot know where any given
breakpoint lives; all it can do is pass the name to the application in
the "PMIX_BREAKPOINT" environment variable and then wait for the "ready
for debug" event the application generates when it gets there. It is
therefore up to the application to recognize the name and stop in the
corresponding place. Given without an argument, the processes stop at
whichever such place they reach first.

Since the argument is read as a boolean when it spells one, a breakpoint
cannot be named "true", "false", or any other spelling of a truth value.
#
[x]

Export an environment variable, optionally specifying a value. For
example:

* "-x foo" exports the environment variable "foo" and takes its value
  from the current environment.

* "-x foo=bar" exports the environment variable name "foo" and sets its
  value to "bar" in the started processes.

* "-x foo*" exports all current environmental variables starting with
  "foo".
#
[wdir]

Set the working directory of the started processes. A relative path is
taken relative to the current working directory of the command, and
converted to an absolute path. Without this option (or
"--set-cwd-to-session-dir"), the processes start in the command's
current working directory. "--wd" is a synonym for "--wdir".
#
[wd]

Synonym for "--wdir".
#
[set-cwd-to-session-dir]

Set the working directory of the started processes to their session
directory. This is ignored if "--wdir" is also given.
#
[path]

Directory in which to find the executable of this application context:
the executable named on the command line is taken relative to it. A
relative directory is taken relative to the current working directory of
the command, and converted to an absolute path.
#
[pset]

User-specified name assigned to the processes in their given application
context. The processes are told it as the name of the PMIx process set
("PMIX_PSET_NAME") they belong to.
#
[default-hostfile]

Specify a default hostfile.

Also see "--help hostfile".
#
[hostfile]

#include#help-hostfile.txt#hostfile

#
[machinefile]

#include#help-hostfile.txt#machinefile

#
[add-hostfile]

#include#help-hostfile.txt#add-hostfile

#
[host]

#include#help-dash-host.txt#host

#
[add-host]

#include#help-dash-host.txt#add-host

#
[activate]

#include#help-dash-host.txt#activate

#
[personality]

Specify the personality to be used. This governs selection of the plugin
responsible for defining and parsing the command line, harvesting and
forwarding environmental variables, and providing library-dependent
support to the launched processes. Examples include "ompi" for an
application compiled with Open MPI, "mpich" for one built against the
MPICH library, or "oshmem" for an OpenSHMEM application compiled against
SUNY's reference library.
#
[preload-files]

Syntax: "--preload-files <files>"

Preload the comma-separated list of files to the remote machines'
current working directory before starting the remote process.
#
[preload-binary]

Syntax: "-s" or "--preload-binary"

Preload the binary on the remote machine before starting the remote
process.
#
[output]

#include#help-schizo-output.txt#output

#
[stdin]

Specify which application process is to receive the command's stdin:
"all", "none", or the rank of a single process (default: "0", indicating
rank 0). Any other value is refused.
#
[map-by]

#include#help-mapby.txt#map-by

#
[mapby]
#include#help-mapby.txt#mapby

#
[rank-by]

#include#help-rankby.txt#rank-by

#
[rankby]

#include#help-rankby.txt#rankby

#
[bind-to]

#include#help-bindto.txt#bind-to

#
[bindto]

#include#help-bindto.txt#bindto

#
[runtime-options]

#include#help-schizo-rtos.txt#runtime-options

#
[rtos]

#include#help-schizo-rtos.txt#rtos

#
[display]

#include#help-schizo-display.txt#display

#
[multiple-default-hostfiles]
Multiple default hostfile values were provided:

  Values:  %s

Only one default hostfile can be specified. Please correct the input
and try again.
#
[placement]

#include#help-placement.txt#placement

#
[placement-all]

#include#help-placement.txt#placement-all

#
[placement-fundamentals]

#include#help-placement.txt#placement-fundamentals

#
[placement-limits]

#include#help-placement.txt#placement-limits
#
[placement-examples]

#include#help-placement.txt#placement-examples
#
[placement-diagnostics]

#include#help-placement.txt#placement-diagnostics
#
[placement-deprecated]

#include#help-placement.txt#placement-deprecated

#
[rankfile]

Name of file to specify explicit task mapping

NOTE: deprecated in favor of "--map-by rankfile:file=<filename>"

#include#help-placement.txt#placement-rankfiles

