openshmem-org / specification

OpenSHMEM Application Programming Interface
http://www.openshmem.org
51 stars 40 forks source link

Ambiguity in shmem_ctx_quiet Completion and Visibility #487

Open manjugv opened 2 years ago

manjugv commented 2 years ago

Assuming context is created by shmem_team_ctx_create operation, on return from shmem_ctx_quiet, the completed operations could be visible:

What should be the behavior of shmem_ctx_quiet, 1 or (2)?

manjugv commented 2 years ago

Notes from the WG meeting (Jan 10th):

Both approaches have advantages, (1) can have performance benefits for some architectures (GPUs) while (2) providing simplicity to the user. However, the OpenSHMEM memory model doesn’t support scoped memory allocation - scoped completion without scoped allocation introduces asymmetry. Given the constraints of the current OpenSHMEM memory model, one of the resolutions is to introduce a flag to shmem_ctx_quiet t that captures both behaviors.

Next Step:

manjugv commented 2 years ago

@jdinan @nspark Please feel free to add/edit, if I missed any nuances from today's discussion.

naveen-rn commented 2 years ago

I'm not sure how can (2) be implemented? Irrespective of the TEAM being used, every PE would know the targets that were used for communication using a particular context. Wouldn't getting those operations flushed to target PEs memory make it globally visible to every PE in the job. Not, sure how could we get global visibility on a set of PEs in the job?

Is there an implementation specific feature available for this?