openshmem-org / specification

OpenSHMEM Application Programming Interface
http://www.openshmem.org
50 stars 32 forks source link

Update shmem_ctx_nostore definition #402

Closed naveen-rn closed 4 years ago

naveen-rn commented 4 years ago

The SHMEM_CTX_NOSTORE option definition is bit ambiguous. We have the following definition:

Quiet and fence operations performed on the given context are not required to enforce completion and ordering of memory store operations. When ordering of store operations is needed, the ap- plication must perform a synchronization operation on a context without the SHMEM_CTX_NOSTORE option enabled.

In general, wrt to this definition, I understand what we mean by "memory store" operations. But recent discussions internally with some developers, lead to a confusion. As we don't have a standard definition for "memory store" it is ambiguous on whether we define the memory store here as a local op or on the remote op (PCIe to Memory by the memory controller). We might want to clarify that the memory store here is used as a simple local store operation and still the ordering/completion semantics has to be maintained for all network generated store operations on the remote process memory.

jdinan commented 4 years ago

In WG discussion, we had proposed adding the +text+ below:

Quiet and fence operations performed on the given context are not required to enforce completion and ordering of memory store operations +performed by the application+. When ordering of store operations is needed, the ap- plication must perform a synchronization operation on a context without the SHMEM_CTX_NOSTORE option enabled.

jdinan commented 4 years ago

@naveen-rn Please review the change posted above.

naveen-rn commented 4 years ago

Changes looks fine with me.