PMIx Versioning - openpmix/openpmix GitHub Wiki
This page describes the rules we use to determine when to adjust the version of PMIx. Various email exchanges on this topic can be found at the links below:
PMIx backwards compatibility
Note that this is slightly stronger than what Open MPI is using, if you are familiar with their definition.
Full Backwards Compatibility [vX.Y.Z]
Z
: Internal bug fixes that do not impact behavior seen outside of a single process.Y
: No API changes (or required attributes), but behavior between processes changed (e.g., flock, dstore).X
: API changes and/or required attributes.
The scenario we have to keep in mind is that if we have a statically linked PMIx server at, say, version v5.6.7
. And we have a PMIx client dynamically linked, then:
- The client can be at
v5.6.z
and still work with the PMIx server. - If the PMIx client moves to
v5.6.8
then the PMIx server does not need to change. - If the PMIx client moves to
v5.7.0
then the PMIx server will need to update to a PMIx version in thev5.7.z
series. It only needs to re-compile because it was statically linked. A dynamically linked PMIx process will just need to re-link. - If the PMIx client moves to
v6.0.0
then the PMIx server will need to re-compile to a version in thev6.0.z
series.
Cross-Version Support
There is work ongoing to better interoperate between major version of PMIx. Details on cross-version compatibility will be posted as they come available.