I forgot to include a link to the official announcement of the change, and that info might be helpful in navigating the different versions and backwards compatibility:

https://www.open-mpi.org/community/lists/announce/2015/06/0069.php

Thanks,
David

On 02/26/2016 10:43 AM, David Shrader wrote:
Hey Edwin,

The versioning scheme changed with 2.x. Prior to 2.x the "Minor" version had a different definition and did not mention backwards compatibility at all (at least in my 1.6.x tarballs). As it turned out for 1.8.x and 1.6.x, 1.8.x was not backwards compatible with 1.6.x, so the behavior you saw in your test of 1.6.x-compiled code running against 1.8.x is expected. In practice, 1.x was never backwards compatible with 1.y where x>y, even though the versioning documentation at the time didn't specifically mention it.

There is a note in the versioning documentation (https://www.open-mpi.org/software/ompi/versions/) that does warn of this change in the versioning scheme:

NOTE: The version numbering conventions were changed with the release
      of v1.10.0.  Most notably, Open MPI no longer uses an "odd/even"
      release schedule to indicate feature development vs. stable
      releases.  See the README in releases prior to v1.10.0 for more
      information (e.g.,
https://github.com/open-mpi/ompi-release/blob/v1.8/README#L1392-L1475).

There is also a CAVEAT underneath the "Major" section of the versioning documentation that says that 1.10.x is not backwards compatible with other 1.x releases and that the same rule applies to anything before 1.10.0. Perhaps another CAVEAT could be placed after the "Minor" section since the information on backwards compatibility in the "Minor" section only applies to 2.x and beyond.

The developers are still in the midst of the version scheme transition (developing on both 1.10.x and 2.x), so the FAQ entries might be a bit out-dated for the new numbering scheme for a while.

Thanks,
David

On 02/26/2016 09:20 AM, Blosch, Edwin L wrote:
I am confused about backwards-compatibility.

FAQ #111 says:
Open MPI reserves the right to break ABI compatibility at new feature release series. ..... MPI applications compiled/linked against Open MPI 1.6.x will not be ABI compatible with Open MPI 1.7.x

But the versioning documentation says:
* Minor: The minor number is the second integer in the version string. .... Backwards compatibility will still be preserved with prior releases that have the same major version number (e.g., v2.5.3 is backwards compatible with v2.3.1).

These two examples and statements appear inconsistent to me:

Can I use OpenMPI 1.7.x run-time and options to execute codes built with OpenMPI 1.6.x? No (FAQ #111)

Can I use OpenMPI 2.5.x run-time and options to execute codes built with OpenMPI 2.3.x? Yes (s/w versioning documentation)

Can I use OpenMPI 1.8.x run-time and options to execute codes built with OpenMPI 1.6.x? Who knows?! I tested this once, and it failed. I made the assumption that 1.8.x wouldn't run a 1.6.x code, and I moved on. But I realize now that I could have made a mistake. The test I performed could have failed for some other reason.

Can anyone shed some light?




_______________________________________________
users mailing list
us...@open-mpi.org
Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
Link to this post: http://www.open-mpi.org/community/lists/users/2016/02/28590.php


--
David Shrader
HPC-3 High Performance Computer Systems
Los Alamos National Lab
Email: dshrader <at> lanl.gov

Reply via email to