flux-pmi(1)
SYNOPSIS
DESCRIPTION
flux pmi is a standalone Process Management Interface (PMI) client that embeds the same PMI client plugins as flux-broker(1). It can be used to test the PMI service offered by flux-shell(1) to parallel programs launched by Flux, or to probe the PMI services of an external launcher like Slurm or Hydra in isolation, without the complications of starting a Flux instance.
flux pmi tries a sequence of PMI plugins until one successfully
initializes. Alternatively, the specific plugin can be forced with the
--method option. Initialization is followed by a subcommand-specific
sequence of PMI operations that mimics a common pattern, and then PMI
finalization.
OPTIONS
- -v, --verbose[=LEVEL]
Trace PMI operations. This is equivalent to setting
FLUX_PMI_DEBUGin the broker environment.
- -t, --timeout=FSD
Specify a timeout for the requested PMI operation(s) in RFC 23 Flux Standard Duration format, e.g. "0.1s" or "32m". If the timeout expires, the command exits with an error code. Default: no timeout.
- --method=URI
Specify the PMI method to use, where the scheme portion of the URI specifies a plugin and the path portion specifies plugin-specific options. The builtin plugins are
- simple
Use the simple PMI-1 wire protocol.
- libpmi2[:PATH]
dlopen()libpmi2.soand use the PMI-2 API, optionally at a specific PATH.- libpmi[:PATH]
dlopen()libpmi.soand use the PMI-1 API, optionally at a specific PATH.- single
Become a singleton.
- --libpmi-noflux
Fail if the libpmi or libpmi2 methods find the Flux
libpmi.so.
- --libpmi2-cray
Force the libpmi2 Cray workarounds to be enabled for testing. Normally they are enabled only if a heuristic detects that Cray libpmi2 is in use. The workarounds are
Encode all KVS values with base64.
Immediately fail an attempt to fetch any KVS with a
flux.prefix.
COMMANDS
barrier
flux pmi barrier executes a PMI barrier and prints a message on rank 0 upon completion.
- --test-timing
First execute a preliminary barrier to ensure all ranks enter the test barrier at the same time, then execute a test barrier and print the elapsed time for the test barrier on rank 0 stdout.
- --test-count=N
Execute N barrier operations (default 1).
- --test-abort=RANK
Instead of entering the barrier, arrange for RANK to call the PMI abort function. This option is intended for testing only.
exchange
flux pmi exchange does the following:
Execute PMI barrier
Put rank specific key to PMI KVS
Execute PMI barrier
Get rank specific key from PMI KVS for all other ranks
Execute PMI barrier
Print elapsed time of (2-5)
- --count=N
Execute N exchange (step 2-5) operations (default 1).
get
flux pmi get fetches a pre-set key from the PMI KVS.
- --ranks=RANKS
Print the value on specified RANKS, an RFC 22 idset or
all(default 0).
RESOURCES
Flux: http://flux-framework.org
Flux RFC: https://flux-framework.readthedocs.io/projects/flux-rfc
Issue Tracker: https://github.com/flux-framework/flux-core/issues