Skip to content

MPI_Count must be able to hold an absolute address #735

@jedbrown

Description

@jedbrown

Problem

MPI 4.0 section 2.5.8 Counts says

Even though the MPI_Count type is large enough to encode address locations, the MPI_Count type shall not be used to represent an absolute address.

This isn't true because MPI_Type_create_struct_c takes displacements as an MPI_Count and can be used with MPI_BOTTOM, thus displacements are absolute addresses. Specifically for CHERI architectures (where MPI_Aint will be 128b), MPI_Count must also hold the special bits.

Proposal

We have two choices

  1. strike the sentence
  2. Replace with a correct clarifying sentence. Suggestion:

MPI_Count may be used to specify displacements with respect to MPI_BOTTOM, thus may store a pointer value.

Changes to the Text

Strike or replace this sentence.

Impact on Implementations

None; implementations already support this.

Impact on Users

Clarity reading the standard.

References and Pull Requests

Metadata

Metadata

Assignees

Labels

mpi-6For inclusion in the MPI 5.1 or 6.0 standardwg-abiABI Working Group

Type

No type

Projects

Status

To Do

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions