-
Notifications
You must be signed in to change notification settings - Fork 2
Notes 2020 07 09
- Sudheer Chunduri
- Bengisu Elis
- Marc-Andre Hermanns
- Pouya Kousha
- Joachim Protze
- Martin Schulz
-
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_WORLD
andMPI_COMM_SELF
are only valid for use inside the world model (i.e., betweenMPI_Init(_thread)
andMPI_Finalize
) so this also prohibits its use inMPI_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
.