PMIx Versioning
Josh Hursey edited this page Aug 22, 2017
·
2 revisions
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:
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.
There is work ongoing to better interoperate between major version of PMIx. Details on cross-version compatibility will be posted as they come available.