forked from flux-framework/flux-core
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
broker: add support for PMIx bootstrap
Problem: on some platforms PMIx is the preferred mechanism to use for bootstrapping Flux. Add support to the broker's pmiutil.c to use PMIx if the PMIx server environment variables are set. For now, keep the PMIx integration as simple as possible, and use the PMIx_*() functions directly. We can consider other options such as indirection through dlopen() later, if we run into problems. This implementation was guided by the PMI-1 compatibility code here: https://github.com/openpmix/pmi-shim Since Flux does not require all of PMI-1, our code is much simpler. In addition, some PMIx differences from PMI-1 with respect to key scope could be dealt with directly, compared to the shim: - add a 'from_rank' to broker_pmi_kvs_get() so that PMIx_Get() can set proc.rank to this instead of PMIX_RANK_UNDEF. This avoids a hang with the dstore gds component, as described in openpmix/pmi-shim#3 - if 'from_rank' is set to -1, then set proc.rank to PMIX_RANK_UNDEF, and set the PMIX_OPTIONAL attribute to 1 so PMIx_Get() fails immediately if the key is not set. This is used when the broker tries to fetch the 'flux.instance-level' key, which the flux shell places in the KVS, and is not expected to exist when Flux is launched by a foreign resource manager. Note to future implementor of flux shell PMIx plugin (flux-framework#3536): this assumes that 'flux.instance-level' would be set using PMIx_server_register_nspace() or equivalent, which would push the key to the client at initialization. Add some PMIX well known environment variables to the blocklist in runat.c, so they do not propagate to the initial program when Flux is launched by a PMIx process manager. Co-authored-by: Jim Garlick <[email protected]>
- Loading branch information
1 parent
e04e5dc
commit 920c192
Showing
5 changed files
with
255 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.