Open MPI logo

Open MPI: Version Number Methodology

  |   Home   |   Support   |   FAQ   |  
Open MPI's version numbers are the union of several different values: major, minor, release, and an optional quantifier.
  • Major: The major number is the first integer in the version string (e.g., v1.2.3). Changes in the major number typically indicate a significant change in the code base and/or end-user functionality. The major number is always included in the version number.
  • Minor: The minor number is the second integer in the version string (e.g., v1.2.3). Changes in the minor number typically indicate a incremental change in the code base and/or end-user functionality. The minor number is always included in the version number. Starting with Open MPI v1.3.0, the minor release number took on additional significance (see this wiki page for more details):
    • Even minor release numbers are part of "super-stable" release series (e.g., v1.4.0). Releases in super stable series are well-tested, time-tested, and mature. Such releases are recomended for production sites. Changes between subsequent releases in super stable series are expected to be fairly small.
    • Odd minor release numbers are part of "feature" release series (e.g., 1.3.7). Releases in feature releases are well-tested, but they are not necessarily time-tested or as mature as super stable releases. Changes between subsequent releases in feature series may be large.
  • Release: The release number is the third integer in the version string (e.g., v1.2.3). Changes in the release number typically indicate a bug fix in the code base and/or end-user functionality. If the release number is 0, it is omitted from the version number (e.g., v1.2 has a release number of 0).
  • Quantifier: Open MPI version numbers sometimes have an arbitrary string affixed to the end of the version number. Common strings include:
    • aX: Indicates an alpha release. X is an integer indicating the number of the alpha release (e.g., v1.2.3a5 indicates the 5th alpha release of version 1.2.3).
    • bX: Indicates a beta release. X is an integer indicating the number of the beta release (e.g., v1.2.3b3 indicates the 3rd beta release of version 1.2.3).
    • rcX: Indicates a release candidate. X is an integer indicating the number of the release candidate (e.g., v1.2.3rc4 indicates the 4th release candidate of version 1.2.3).
    • rV or hgV: Indicates the Subversion / Mercurial repository number string that the release was made from (V is usually an integer for Subversion releases and usually a string for Mercurial releases). Although all official Open MPI releases are tied to a single, specific Subversion or Mercurial repository number (which can be obtained from the ompi_info command), only some releases have the Subversion / Mercurial repository number in the version number. Development snapshot tarballs, for example, have the Subversion repository included in the version to reflect that they are a development snapshot of an upcoming release (e.g., v1.2.3r1234 indicates a development snapshot of version 1.2.3 corresponding to Subversion repository number 1234).
    Quantifiers may be mixed together -- for example v1.2.3rc7r2345 indicates a development snapshot of an upcoming 7th release candidate for version 1.2.3 corresponding to Subversion repository number 2345.