Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ambiguity in shmem_ctx_quiet Completion and Visibility #487

Open
manjugv opened this issue Jan 10, 2022 · 3 comments
Open

Ambiguity in shmem_ctx_quiet Completion and Visibility #487

manjugv opened this issue Jan 10, 2022 · 3 comments
Assignees

Comments

@manjugv
Copy link
Collaborator

manjugv commented Jan 10, 2022

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

  • (1.) to all PEs in the job, or
  • (2.) only to PEs in the team that was used to create the context

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

@manjugv
Copy link
Collaborator Author

manjugv commented Jan 10, 2022

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:

  • Proposal to change shmem_ctx_quiet to include a flag that captures behavior (1) and (2).

@manjugv
Copy link
Collaborator Author

manjugv commented Jan 10, 2022

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

@naveen-rn
Copy link
Contributor

naveen-rn commented Jan 11, 2022

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants