From 88120e225b4560070a8a497cba46aeab31bef566 Mon Sep 17 00:00:00 2001 From: Jeff Squyres Date: Tue, 28 Mar 2023 10:39:01 -0400 Subject: [PATCH 1/3] MPI_Get_version.3: fix RST rendering Signed-off-by: Jeff Squyres --- docs/man-openmpi/man3/MPI_Get_version.3.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/man-openmpi/man3/MPI_Get_version.3.rst b/docs/man-openmpi/man3/MPI_Get_version.3.rst index 6d0cc7a2e82..d2d5d2bae7c 100644 --- a/docs/man-openmpi/man3/MPI_Get_version.3.rst +++ b/docs/man-openmpi/man3/MPI_Get_version.3.rst @@ -46,9 +46,9 @@ OUTPUT PARAMETERS ----------------- * ``version`` : The major version number of the corresponding standard - (integer). + (integer). * ``subversion`` : The minor version number of the corresponding - standard (integer). + standard (integer). * ``ierror`` : Fortran only: Error status (integer). DESCRIPTION From 1c595f23b2abb79a88d3757befa78ba22c59cb3d Mon Sep 17 00:00:00 2001 From: Jeff Squyres Date: Tue, 28 Mar 2023 10:40:06 -0400 Subject: [PATCH 2/3] docs: fix rendering of MPI standards versions RST apparently does not render |foo|.|bar| properly. Specifically: the "foo" macro will render properly, but the "bar" macro will not. As such, split the MPI standard version into three macros so that we don't have to render MPI's major and minor versions in the pattern that RST will not render correctly. Also add a cross reference from MPI_Get_version.3 to the release notes where we talk about Open MPI's MPI conformance. Signed-off-by: Jeff Squyres --- docs/conf.py | 9 +++++---- docs/man-openmpi/man3/MPI_Get_version.3.rst | 7 +++++-- docs/man-openmpi/man7/Open-MPI.7.rst | 2 +- docs/release-notes/mpi.rst | 2 ++ 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 45408bb8ad5..fc7034fa40a 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -52,8 +52,8 @@ autoconf_min_version = f"{ompi_data['autoconf_min_version']}" libtool_min_version = f"{ompi_data['libtool_min_version']}" flex_min_version = f"{ompi_data['flex_min_version']}" -mpi_standard_version = f"{ompi_data['mpi_standard_version']}" -mpi_standard_subversion = f"{ompi_data['mpi_standard_subversion']}" +mpi_standard_major_version = f"{ompi_data['mpi_standard_version']}" +mpi_standard_minor_version = f"{ompi_data['mpi_standard_subversion']}" # "release" is a sphinx config variable: assign it to the computed # Open MPI version number. The ompi_ver string begins with a "v"; the @@ -219,8 +219,9 @@ def _doit(topdir): .. |autoconf_min_version| replace:: {autoconf_min_version} .. |libtool_min_version| replace:: {libtool_min_version} .. |flex_min_version| replace:: {flex_min_version} -.. |mpi_standard_version| replace:: {mpi_standard_version} -.. |mpi_standard_subversion| replace:: {mpi_standard_subversion} +.. |mpi_standard_version| replace:: {mpi_standard_major_version}.{mpi_standard_minor_version} +.. |mpi_standard_major_version| replace:: {mpi_standard_major_version} +.. |mpi_standard_minor_version| replace:: {mpi_standard_minor_version} .. |deprecated_favor| replace:: this routine is deprecated in favor of """ diff --git a/docs/man-openmpi/man3/MPI_Get_version.3.rst b/docs/man-openmpi/man3/MPI_Get_version.3.rst index d2d5d2bae7c..140b07dab7d 100644 --- a/docs/man-openmpi/man3/MPI_Get_version.3.rst +++ b/docs/man-openmpi/man3/MPI_Get_version.3.rst @@ -54,8 +54,11 @@ OUTPUT PARAMETERS DESCRIPTION ----------- -Since Open MPI is MPI-|mpi_standard_version|.|mpi_standard_subversion| compliant, this function will return a -``version`` value of |mpi_standard_version| and a subversion value of |mpi_standard_subversion| for this release. +Since Open MPI |ompi_ver| is MPI-|mpi_standard_version| compliant (see +:ref:`this page for more details about Open MPI standards conformance +`) this function will return a +``version`` value of |mpi_standard_major_version| and a ``subversion`` +value of |mpi_standard_minor_version| for this release. NOTE ---- diff --git a/docs/man-openmpi/man7/Open-MPI.7.rst b/docs/man-openmpi/man7/Open-MPI.7.rst index 5affc9d8ad6..9f134276067 100644 --- a/docs/man-openmpi/man7/Open-MPI.7.rst +++ b/docs/man-openmpi/man7/Open-MPI.7.rst @@ -24,7 +24,7 @@ portable. The outcome, known as the MPI Standard, was first published in 1993; its most recent version (MPI-4.0) was published in June 2021. Open MPI -includes all MPI |mpi_standard_version|.|mpi_standard_subversion|-compliant routines. +includes all MPI |mpi_standard_version|-compliant routines. For more information about Open MPI, see https://www.open-mpi.org. diff --git a/docs/release-notes/mpi.rst b/docs/release-notes/mpi.rst index 3af42eeaac2..a82ee563b5b 100644 --- a/docs/release-notes/mpi.rst +++ b/docs/release-notes/mpi.rst @@ -1,6 +1,8 @@ MPI Functionality and Features ============================== +.. _mpi-standard-conformance-label: + MPI Standard conformance ------------------------ From 56b1a42963db74d6d37c050489cd67130ef17847 Mon Sep 17 00:00:00 2001 From: William Zhang Date: Fri, 17 Mar 2023 12:13:37 -0700 Subject: [PATCH 3/3] doc: Add MPI-4.0 partial compliance features Signed-off-by: William Zhang --- docs/release-notes/mpi.rst | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/docs/release-notes/mpi.rst b/docs/release-notes/mpi.rst index a82ee563b5b..b2d11d60d1b 100644 --- a/docs/release-notes/mpi.rst +++ b/docs/release-notes/mpi.rst @@ -6,9 +6,9 @@ MPI Functionality and Features MPI Standard conformance ------------------------ -In the Open MPI |ompi_series| series, all MPI-|mpi_standard_version|.|mpi_standard_subversion| functionality is -supported. Some MPI-4.0 functionality is supported, but not all of -it. +In the Open MPI |ompi_series| series, all MPI-|mpi_standard_version| +functionality is supported. *Some* MPI-4.0 functionality is +supported. As such, ``MPI_VERSION`` is set to 3 and ``MPI_SUBVERSION`` is set to 1. @@ -33,6 +33,38 @@ For historical reference: * - MPI-3.1 - Open MPI v2.0 +MPI-4.0 partial compliance +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +In the Open MPI |ompi_series| series, only partial MPI-4.0 functionality is +supported. This section contains a list of features added for the release. + +* Added support for MPI Sessions. +* Added partitioned communication using persistent sends and persistent receives. +* Added persistent collectives to the ``MPI_`` namespace (they were previously + available via the ``MPIX_`` prefix). +* Added support for :ref:`MPI_Isendrecv()` and its variants. +* Added support for :ref:`MPI_Comm_idup_with_info()`. +* Added support for :ref:`MPI_Info_get_string()`. +* Added support for ``initial_error_handler`` info key and the + ``MPI_ERRORS_ABORT`` infrastructure. +* Added support for ``mpi_minimum_alignment`` info key. +* Added support for ``MPI_COMM_TYPE_HW_GUIDED`` and + ``MPI_COMM_TYPE_HW_UNGUIDED``. +* Added support for :ref:`MPI_Info_create_env()`. +* Added error handling for "unbound" errors to ``MPI_COMM_SELF``. +* Added ``MPI_F_STATUS_SIZE``, ``MPI_F_SOURCE``, ``MPI_F_TAG``, and + ``MPI_F_ERROR``. +* Made :ref:`MPI_Comm_get_info()`, + :ref:`MPI_File_get_info()`, and + :ref:`MPI_Win_get_info()` MPI-4.0 compliant. +* Info keys that are not understood by Open MPI will be silently ignored and + dropped on communicators, files, and windows. +* Deprecated :ref:`MPI_Sizeof()`. +* Deprecated :ref:`MPI_Cancel()` on send requests. +* Deprecated :ref:`MPI_Info_get()` and + :ref:`MPI_Info_get_valuelen()`. + Removed MPI APIs ----------------