2. Section Semantic Terms,
Communication Modes, Communication Initiation,
Communication Completion, Probe,
Matching Probe,
Persistent Collective Operations,
Split Collective Data Access Routines, and
Annex Summary of the Semantics of all Operation-Related MPI Procedures on
pages Semantic Terms, Communication Modes,
Communication Initiation, Communication Completion,
Probe, Matching Probe,
Persistent Collective Operations,
Split Collective Data Access Routines, and
Summary of the Semantics of all Operation-Related MPI Procedures.
The semantic terms were updated.
3. Sections Counts and Support for Large Count and Large Byte Displacement in MPI Language Bindings on pages Counts and Support for Large Count and Large Byte Displacement in MPI Language Bindings, and throughout the entire document.
New large count functions MPI_{...}_c
in C and through function overloading
in the Fortran mpi_f08 module,
(with the exception of the explicit Fortran procedures
MPI_Op_create_c and MPI_Register_datarep_c)
and the new large count callbacks
MPI_User_function_c and
MPI_Datarep_conversion_function_c
together with the predefined function
MPI_CONVERSION_FN_NULL_C
were introduced to accomodate large buffers and/or datatypes.
Clarifications were added to the behavior of INOUT/ OUT parameters that cannot represent the value to be returned for the MPI_BUFFER_DETACH and MPI_FILE_GET_TYPE_EXTENT functions.
A new error class MPI_ERR_VALUE_TOO_LARGE was introduced.
4. Sections Error Handling, Error Handling, Error Classes, Error Codes, and Error Handlers, and Starting MPI Processes on
pages Error Handling, Error Handling, Error Classes, Error Codes, and Error Handlers, and Starting MPI Processes.
MPI calls that are not related to any objects are considered to be attached to
the communicator MPI_COMM_SELF instead of MPI_COMM_WORLD.
The definition of
MPI_ERRORS_ARE_FATAL was clarified to cover all connected processes,
and a new error handler, MPI_ERRORS_ABORT, was created to limit the
scope of aborting.
5.
Section Nonblocking Communication on page Nonblocking Communication.
The introduction of MPI nonblocking communication was changed to
describe correctness and performance reasons for the use of nonblocking communication.
6. Section Communication Initiation on page Communication Initiation.
Addition of
MPI_ISENDRECV and
MPI_ISENDRECV_REPLACE.
7. Sections Communication Completion, Persistent Communication Requests, Persistent Collective Operations, Persistent Neighborhood Communication on Process Topologies, and An Application Example on pages Communication Completion, Persistent Communication Requests, Persistent Collective Operations, Persistent Neighborhood Communication on Process Topologies, and An Application Example.
Persistent collective communication
MPI_{ALLGATHER|...}_INIT
including persistent collective neighborhood communication
MPI_NEIGHBOR_{ALLGATHER|...}_INIT
was added to the standard.
8.
Sections Cancel and Deprecated since MPI-4.0 on pages Cancel and Deprecated since MPI-4.0.
Cancelling a send request by calling MPI_CANCEL has been deprecated and may be removed in a future version of the MPI specification.
9. Chapter Partitioned Point-to-Point Communication on page Partitioned Point-to-Point Communication.
A new chapter on partitioned communication
with the new MPI procedures
MPI_{PARRIVED|PREADY{...}}
and MPI_{PRECV|PSEND}_INIT
was added.
10. Section Communicator Constructors on page Communicator Constructors.
MPI_COMM_TYPE_HW_UNGUIDED was added as a new possible value for the split_type
parameter of the MPI_COMM_SPLIT_TYPE function.
11. Section Communicator Constructors on page Communicator Constructors.
MPI_COMM_TYPE_HW_GUIDED was added as a new possible value for the split_type
parameter of the MPI_COMM_SPLIT_TYPE function, as well as a new info key
mpi_hw_resource_type. A specific value associated with this new info key is also defined:
mpi_shared_memory.
12. Section Communicator Constructors on page Communicator Constructors.
The functions MPI_COMM_DUP and MPI_COMM_IDUP were
updated to no longer propagate info hints.
This change may affect backward compatibility.
13. Section Communicator Constructors on page Communicator Constructors.
The
MPI_COMM_IDUP_WITH_INFO function was added.
14. Sections Communicator Info, Window Info, and File Info on pages
Communicator Info, Window Info, and File Info.
The definition of info hints was updated to allow applications to provide
assertions regarding their usage of MPI objects and operations.
15. Section Communicator Info on page Communicator Info.
The new info hints mpi_assert_no_any_tag,
mpi_assert_no_any_source, mpi_assert_exact_length,
and mpi_assert_allow_overtaking were added for use with
communicators.
16. Sections Communicator Info, Window Info, and File Info
on pages Communicator Info, Window Info,
and File Info.
The semantics of the
MPI_COMM_SET_INFO, MPI_COMM_GET_INFO,
MPI_WIN_SET_INFO, MPI_WIN_GET_INFO,
MPI_FILE_SET_INFO, and MPI_FILE_GET_INFO
were clarified.
17. Section Topology Constructors on page Topology Constructors.
MPI_DIMS_CREATE is now guaranteed to return MPI_SUCCESS if the number of dimensions passed to the routine is set to 0 and the number of nodes is set to 1.
18. Sections Memory Allocation, Window That Allocates Memory, and Window That Allocates Shared Memory on
pages Memory Allocation, Window That Allocates Memory, and Window That Allocates Shared Memory.
Introduced alignment requirements for memory allocated through
MPI_ALLOC_MEM, MPI_WIN_ALLOCATE, and
MPI_WIN_ALLOCATE_SHARED and added a new info
key mpi_minimum_memory_alignment to specify a desired alternative minimum alignment.
19. Sections Error Handling and Error Codes and Classes on
pages Error Handling and Error Codes and Classes.
Clarified definition of errors to say that MPI should continue whenever
possible and allow the user to recover from errors.
20. Section Error Codes and Classes on page Error Codes and Classes.
Added text to clarify what is implied about the status of MPI and user visible buffers when MPI
functions return MPI_SUCCESS or other error codes.
21. Section Error Codes and Classes on page 7.
The error class MPI_ERR_PROC_ABORTED has been added.
22. Section The Info Object on page The Info Object.
Added a new function MPI_INFO_GET_STRING that takes a
buffer length argument for returning info value strings. This function
returns the required buffer length for the requested string and guarantees
null termination for C strings where buffer size is greater than 0.
23. Section The Info Object on page The Info Object and
Section Deprecated since MPI-4.0 on page Deprecated since MPI-4.0.
MPI_INFO_GET and MPI_INFO_GET_VALUELEN were deprecated.
24. Chapter Process Initialization, Creation, and Management,
Message Envelope,
Predefined Intra-Communicators,
Group Constructors,
Communicator Constructors,
Inter-Communicator Operations,
Version Inquiries,
Environmental Inquiries,
Error Handling,
Error Handlers for Sessions,
Error Classes, Error Codes, and Error Handlers,
MPI and Threads,
Opening a File,
Querying File Parameters,
I/O Error Handling,
Initialization and Finalization,
Transfer of Handles,
MPI Opaque Objects,
and
Annex Language Bindings Summary
on pages Process Initialization, Creation, and Management,
Message Envelope,
Predefined Intra-Communicators,
Group Constructors,
Communicator Constructors,
Inter-Communicator Operations,
Version Inquiries,
Environmental Inquiries,
Error Handling,
Error Handlers for Sessions,
Error Classes, Error Codes, and Error Handlers,
MPI and Threads,
Opening a File,
Querying File Parameters,
I/O Error Handling,
Initialization and Finalization,
Transfer of Handles,
MPI Opaque Objects,
and
Language Bindings Summary.
The Sessions Model was added to the standard.
New MPI procedures are
MPI_SESSION_{INIT|FINALIZE},
MPI_SESSION_GET_{...},
MPI_SESSION_{...}_ERRHANDLER,
MPI_GROUP_FROM_SESSION_PSET,
MPI_COMM_CREATE_FROM_GROUP,
MPI_INTERCOMM_CREATE_FROM_GROUPS,
and new conversion functions are MPI_SESSION_{C2F|F2C}.
New declarations are MPI_Session in C
and TYPE(MPI_Session)
together with the related overloaded operators .EQ., .NE., == and /=
in the Fortran mpi_f08 and mpi modules,
and the callback function prototype MPI_Session_errhandler_function.
New constants are MPI_SESSION_NULL, MPI_ERR_SESSION,
MPI_MAX_PSET_NAME_LEN, MPI_MAX_STRINGTAG_LEN, MPI_T_BIND_MPI_SESSION
and the predefined info key mpi_size.
25. Section Starting MPI Processes on page Starting MPI Processes.
A new function MPI_INFO_CREATE_ENV was added.
26. Sections Starting MPI Processes and Releasing Connections
on pages Starting MPI Processes and Releasing Connections.
Clarified the semantic of failure and error reporting before (and during) MPI_INIT and after MPI_FINALIZE.
27. Section Reserved Keys on page Reserved Keys.
Added the mpi_initial_errhandler reserved info key with the
reserved values mpi_errors_abort,
mpi_errors_are_fatal, and mpi_errors_return to the
launch keys in MPI_COMM_SPAWN, MPI_COMM_SPAWN_MULTIPLE, and mpiexec.
28. Section Lock on page Lock.
RMA passive target synchronization using locks can now be used portably in memory
allocated via MPI_WIN_ALLOCATE_SHARED.
29. Section Associating Information with Status on page Associating Information with Status.
The mpi_f08 binding incorrectly had the dummy parameter
flag in the MPI F08 binding for
MPI_STATUS_SET_CANCELLED marked as
INTENT(OUT). It has been fixed to be INTENT(IN).
30. Sections The MPI Tool Information Interface and Events on pages The MPI Tool Information Interface and Events.
A callback-driven event interface
with the MPI_T_{SOURCE|EVENT}_{...}
and MPI_T_CATEGORY_{GET|GET_NUM}_EVENTS routines,
the declaration types MPI_T_cb_safety,
MPI_T_event_{instance|registration},
MPI_T_source_order,
and the callback function prototypes MPI_T_event_{cb|dropped_cb|free_cb}_function,
were added to the MPI tool information interface.
31. Section Category Member Query Functions on page Category Member Query Functions.
The argument stamp (previously described as a virtual time stamp) from MPI_T_CATEGORY_CHANGED was renamed to update_number and its intended implementation and use was clarified.
32. Section Return Codes for the MPI Tool Information Interface, Table 23, and Section Deprecated since MPI-4.0
on pages Return Codes for the MPI Tool Information Interface, 23, and Deprecated since MPI-4.0.
MPI_T_ERR_INVALID_ITEM is deprecated. MPI
routines should return
MPI_T_ERR_INVALID_INDEX instead of
MPI_T_ERR_INVALID_ITEM.
33. Section Deprecated since MPI-4.0 on page Deprecated since MPI-4.0.
MPI_SIZEOF was deprecated.
34. Section Interface Specifications, Procedure Names, and the Profiling Interface on page Interface Specifications, Procedure Names, and the Profiling Interface.
An exception was added for the specific Fortran names in the case of TS 29113 interface specifications
in mpif.h for MPI_NEIGHBOR_ALLTOALLW_INIT,
MPI_NEIGHBOR_ALLTOALLV_INIT, and MPI_NEIGHBOR_ALLGATHERV_INIT.