22.2.2. Changes in MPI-4.0

PreviousUpNext
Up: Changes from Version 3.1 to Version 4.0 Next: Changes from Version 3.0 to Version 3.1 Previous: Fixes to Errata in Previous Versions of MPI

    1. Sections Naming Conventions, Warnings Starting in MPI-4.0, and Interface Specifications, Procedure Names, and the Profiling Interface on pages Naming Conventions, Warnings Starting in MPI-4.0, and Interface Specifications, Procedure Names, and the Profiling Interface.
    The limit for the maximum length of MPI identifiers was removed.


    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.


PreviousUpNext
Up: Changes from Version 3.1 to Version 4.0 Next: Changes from Version 3.0 to Version 3.1 Previous: Fixes to Errata in Previous Versions of MPI


Return to MPI-4.1 Standard Index
Return to MPI Forum Home Page

(Unofficial) MPI-4.1 of November 2, 2023
HTML Generated on November 19, 2023