[launcher] flux-pmi [-v] [--method=URI] barrier [--count=N]
[launcher] flux-pmi [-v] [--method=URI] exchange [--count=N]
[launcher] flux-pmi [-v] [--method=URI] get [--ranks=IDSET]


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.


-v, --verbose[=LEVEL]

Trace PMI operations. This is equivalent to setting FLUX_PMI_DEBUG in the broker environment.


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


Use the simple PMI-1 wire protocol.


dlopen() libpmi2.so and use the PMI-2 API, optionally at a specific PATH.


dlopen() libpmi.so and use the PMI-1 API, optionally at a specific PATH.


Become a singleton.


Fail if the libpmi or libpmi2 methods find the Flux libpmi.so.


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.



flux pmi barrier does the following:

  1. Execute PMI barrier

  2. Execute PMI barrier

  3. Print elapsed time of (2)


Execute N barrier (step 2) operations (default 1).


flux pmi exchange does the following:

  1. Execute PMI barrier

  2. Put rank specific key to PMI KVS

  3. Execute PMI barrier

  4. Get rank specific key from PMI KVS for all other ranks

  5. Execute PMI barrier

  6. Print elapsed time of (2-5)


Execute N exchange (step 2-5) operations (default 1).


flux pmi get fetches a pre-set key from the PMI KVS.


Print the value on specified RANKS, an RFC 22 idset or all (default 0).


Flux: http://flux-framework.org

Flux RFC: https://flux-framework.readthedocs.io/projects/flux-rfc


13/Simple Process Manager Interface v1