Skip to content

Do All-to-All collectives *must* synchronize? #971

Open
@mknobi

Description

@mknobi

Problem

Remark 18 in Appendix A.2 (Summary of the Semantics of all Operation-Related MPI Procedures) states

Based on their semantics, when called using an intra-communicator, MPI_ALLGATHER,
MPI_ALLTOALL, and their V and W variants, MPI_ALLREDUCE, MPI_REDUCE_SCATTER,
and MPI_REDUCE_SCATTER_BLOCK must synchronize (i.e., S1/S2 instead of W1/W2) provided that all counts and the size of all datatypes are larger than zero

In the March Forum meeting the question came up whether the hard guarantee (must synchronize) is actually true or if there are cases which can be implemented (in some smart way) that doesn't require synchronization.

Proposal

Check whether that statement is actually true replace it if not.

Changes to the Text

Remove the hard requirement if not necessary

Impact on Implementations

All-to-all collectives could be implemented in a non-synchronizing way

Impact on Users

Users can't rely on synchronization properties of collective routines

References and Pull Requests

Metadata

Metadata

Assignees

No one assigned

    Labels

    chap-collectiveCollective Communication Chapter Committeechap-termsMPI Terms and Conventions Chapter Committeempi-6For inclusion in the MPI 5.1 or 6.0 standard

    Type

    No type

    Projects

    Status

    To Do

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions