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