Skip to content

Info query #63

Closed
Closed
@dholmes-epcc-ed-ac-uk

Description

@dholmes-epcc-ed-ac-uk

Pull request:
https://github.com/mpi-forum/mpi-standard/pull/27

Problem

Context: MPI_Comm/File/Win_get_info

MPI_COMM_GET_INFO returns a new info object containing the hints of the communicator associated with comm. The current setting of all hints actually used by the system related to this communicator is returned in info_used. If no such hints exist, a handle to a newly created info object is returned that contains no key/value pair. The user is responsible for freeing info_used via MPI_INFO_FREE.

What does “actually used” mean?

  • Info settings exactly as supplied by the user (e.g. during creation or in set_info)
  • Current effective values of info keys (even if different/not supplied by user)
  • Implementation defined (this is the most common current interpretation)

Also, when can the value for an info key change?

  • Whenever the MPI library feels like it?
  • Only in user calls that access/set a particular info key?

Proposal

  • MPI maintains an internal INFO state for each Comm/File/Win object.
    • Different INFO state for each object.
    • The INFO state is created/set/referenced during creation of the Comm/File/Win object.
    • The INFO state may be INFO_NULL, if no keys support by MPI.
    • The INFO state may be some common default Info object, if no user-supplied key/values.
  • MPI_[Comm|File|Win]_get_info returns MPI’s current internal INFO state.
  • MPI_[Comm|File|Win]_set_info attempts to modify MPI’s internal INFO state.
    • MPI may ignore supplied keys, whether or not that key is current set in the internal state.
    • MPI may choose different values for supplied keys, (not user value and not internal value).
    • MPI must not change values for keys not supplied by the user in the set function call.
    • MPI must not choose more restrictive values for assertion keys.
    • MPI may choose any less restrictive (or equally restrictive) value for any info key.
    • MPI does not have to store user keys that it does not understand (it is not a cache).

Changes to the Text

TBD: Describe the text changes here.

Impact on Implementations

Almost useless but minimal work implementation: ignore all info keys, i.e. do not even store them. Always return INFO_NULL from all info query functions.

More useful but more work implementation: for each info key that can have some sort of internal effect on the MPI library, store the key as supplied by the user with the most appropriate value, i.e. the value that most closely represents what the MPI library will implement.

Impact on Users

This change addresses the current ambiguity regarding info query functions allowing the user to predict, and rely on, the results.

References

Problem specification slides were presented to the Sept 2016 meeting:
https://docs.google.com/presentation/d/10EPCx2LuJ0BWCeUXIG3pXJjqQs1tlnlO-6TJXIC8G8Q/edit?usp=sharing
The final slide was added during the face-to-face meeting to capture the result of discussion.

Insert any internal (other issues) or external (websites, papers, etc.) references here.

Metadata

Metadata

Labels

had readingCompleted the formal proposal readingpassed final votePassed the final formal votepassed first votePassed the first formal votewg-p2pPoint-to-Point Working Group

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions