Skip to content
Marc-Andre Hermanns edited this page Jul 10, 2020 · 1 revision

MPI Tools WG Meeting 2020-07-09

Participants

  • Sudheer Chunduri
  • Bengisu Elis
  • Marc-Andre Hermanns
  • Pouya Kousha
  • Joachim Protze
  • Martin Schulz

Topics

Issue #160 / PR #161

  • Binding arguments are passed as pointers to local variables (MPI 4.0 2019 Draft, p.616, ll.16-18)

    The object is passed in the argument obj_handle as an address to a local variable that stores the object’s handle.

    • No way of knowing what it is in terms of predefined handle
    • Late binding is not possible
  • Is the term "link-time" constant does not seem to be defined properly

    • Can a predefined handle be a #define (e.g. MPICH)

    • What is the difference between compile-time and link-time constant?

      • At link time the location of the object is known to the linker, but not the value

      • The value may be different outside of the Init/Finalize scope (MPI 4.0 2019 Draft, p.15, ll.20-23)

        Opaque objects accessed by constant handles aredefined and do not change value between MPI initialization (MPI_INIT) and MPI completion (MPI_FINALIZE). The handles themselves are constants and can be also used in initializationexpressions or assignments.

  • Errata for 3.1 and 4.0 might need different text

    • Sessions has changed the scoping and life-cycle of handles in general
    • MPI 4.x: MPI_COMM_WORLDand MPI_COMM_SELF are only valid for use inside the world model (i.e., between MPI_Init(_thread) and MPI_Finalize) so this also prohibits its use in MPI_T outside of these calls. Here, we might not need to do anything.
    • MPI 3.x: There is no clear statement yet that predefined handles are not valid for use outside of the Init/Finalize scope. It's just implied as only few MPI calls are allowed outside of this scope, and none had handles (or pointers to handles) as arguments before MPI_T.
Clone this wiki locally