Skip to content

Outcome of MPI_TEST_CANCELLED on nonblocking collective requests statuses? #821

Open
@devreal

Description

@devreal

Problem

Section 6.12 says:

Upon returning from a completion call in which a nonblocking collective operation
completes, the values of the MPI_SOURCE and MPI_TAG fields in the associated status object,
if any, are undefined. The value of MPI_ERROR may be defined, if appropriate, according
to the specification in Section 3.2.5. It is valid to mix different request types (i.e., any
combination of collective requests, I/O requests, generalized requests, or point-to-point
requests) in functions that enable multiple completions (e.g., MPI_WAITALL). It is erroneous
to call MPI_REQUEST_FREE or MPI_CANCEL for a request associated with a nonblocking
collective operation.

Does that mean that that MPI_TEST_CANCELLED always returns false or that the return value is undefined?

In contrast, the RMA chapter explicitly says in 12.3.5:

Upon returning from a completion call in which an RMA operation completes, all fields
of the status object, if any, and the results of status query functions (e.g.,
MPI_GET_COUNT) are undefined with the exception of MPI_ERROR if appropriate (see
Section 3.2.5).

Proposal

Clarify the whether a call to MPI_TEST_CANCELLED on a nonblocking collective request is well-defined and what it is supposed to return.

Changes to the Text

TBD

Impact on Implementations

TBD

Impact on Users

Minor (clarity on what to expect from status objects)

References and Pull Requests

#814 sparked this inquiry

Metadata

Metadata

Assignees

No one assigned

    Labels

    chap-collectiveCollective Communication Chapter Committeempi-6For inclusion in the MPI 5.1 or 6.0 standardwg-collectivesCollectives Working Group

    Type

    No type

    Projects

    Status

    To Do

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions