5.1. Introduction

PreviousUpNext
Up: Partitioned Point-to-Point Communication Next: Semantics of Partitioned Point-to-Point Communication Previous: Partitioned Point-to-Point Communication

Partitioned communication extends persistent point-to-point communication as defined in Chapter Point-to-Point Communication. Partitioned communication operations are matched based on the order in which the local initialization calls are performed. Partitioned communication is ``partitioned'' because it allows for multiple contributions of data to be made, potentially, from multiple actors (e.g., threads or tasks) in an MPI process to a single communication operation.


Advice to users.

The techniques of partitioned communication were known as ``finepoints'' before their adoption into the MPI standard. We refer the interested reader to the original literature describing the design goals, functioning, initial implementation and performance improvements [29,30]. ( End of advice to users.)
Partitioned communication operations use a persistent communication style that involves a sequence of start and test or wait operations. For this sequence, partitioned communications use MPI_START or MPI_STARTALL calls and completion mechanisms (e.g., MPI_TEST or MPI_WAIT). Partitioned communication is different in three fundamental ways from persistent point-to-point operations in MPI. First, partitioned communication allows additional partitioned test function calls that can expose partial completion of the operation. Second, partitioned communication may perform all of the initialization required to enable data transfer as early as its initialization phase. Third, partitioned communication allows for MPI to be independently notified of multiple contributions from the send-side to a single data buffer of a single MPI message.


Rationale.

The rationale behind having different initialization behavior allowed for partitioned communication as opposed to persistent point-to-point communication is to enable flexibility and optimization possibilities in implementations. Buffer setup can occur in the partitioned communication initialization functions (see Section Communication Initialization and Starting with Partitioning). However, such negotiation can be deferred until data is to be moved between two processes. This means that partitioned communication can lazily negotiate as late as testing for completion of the operation on the first iteration of a sequence of partitioned communication start and test or wait operations. Matching still occurs as if matching happened at the partitioned communication initialization functions as noted in the function descriptions. ( End of rationale.)


PreviousUpNext
Up: Partitioned Point-to-Point Communication Next: Semantics of Partitioned Point-to-Point Communication Previous: Partitioned Point-to-Point Communication


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