Closed nspark closed 4 years ago
Tagging the Synchronization, Ordering, and Locking Section Committee: @nspark @naveen-rn @BryantLam @akhillanger
can one PE call shmem_wait_until on the local address to the other PE's object?
NO
Do we want to prohibit such behavior?
YES
The proposed change looks fine with me.
Yes, I agree with this change.
Require
shmem_wait_until
and friends ...
I assume this statement means every function in the point-to-point synchronization section.
👍
Can we close this issue as the above change is merged into the section committee branch?
PR #276 clarified the distinction between local addresses and symmetric addresses. It also updated the API listings to specify whether they expect local or symmetric addresses to remote data objects.
As of 1.5rc1,
shmem_wait_until
expectsivar
to be a "local address of a remotely accessible data object," andshmem_ptr
returns "a local address to a remotely accessible data object." This allows the following behavior:This example is correct (per 1.5rc1) even if
shmem_ptr
is evaluated with respect to a PE other than the calling PE; e.g., if two PEs are on the same node and the implementation allows load/store access between PEs viashmem_ptr
, can one PE callshmem_wait_until
on the local address to the other PE's object? (My vote: no.)Do we want to prohibit such behavior? (My vote: yes.)
Proposed fix: Require
shmem_wait_until
and friends to requireivar[s]
to be a "symmetric address of a remotely accessible data object."