Skip to content

doc: Add MPI-4.0 partial compliance features #11539

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Mar 30, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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

"""
11 changes: 7 additions & 4 deletions docs/man-openmpi/man3/MPI_Get_version.3.rst
Original file line number Diff line number Diff line change
Expand Up @@ -46,16 +46,19 @@ 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
-----------

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
<mpi-standard-conformance-label>`) 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
----
Expand Down
2 changes: 1 addition & 1 deletion docs/man-openmpi/man7/Open-MPI.7.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
40 changes: 37 additions & 3 deletions docs/release-notes/mpi.rst
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
MPI Functionality and Features
==============================

.. _mpi-standard-conformance-label:

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.
Expand All @@ -31,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()<mpi_isendrecv>` and its variants.
* Added support for :ref:`MPI_Comm_idup_with_info()<mpi_comm_idup_with_info>`.
* Added support for :ref:`MPI_Info_get_string()<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()<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()<mpi_comm_get_info>`,
:ref:`MPI_File_get_info()<mpi_file_get_info>`, and
:ref:`MPI_Win_get_info()<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()<mpi_sizeof>`.
* Deprecated :ref:`MPI_Cancel()<mpi_cancel>` on send requests.
* Deprecated :ref:`MPI_Info_get()<mpi_info_get>` and
:ref:`MPI_Info_get_valuelen()<mpi_info_get_valuelen>`.

Removed MPI APIs
----------------

Expand Down