flux-pmi(1)

SYNOPSIS

[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]

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_DEBUG in the broker environment.

--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.so and use the PMI-2 API, optionally at a specific PATH.

libpmi[:PATH]

dlopen() libpmi.so and 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 does the following:

  1. Execute PMI barrier

  2. Execute PMI barrier

  3. Print elapsed time of (2)

--count=N

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

exchange

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)

--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

FLUX RFC

13/Simple Process Manager Interface v1

SEE ALSO

flux-broker-attributes(7)