gmegan / specification

OpenSHMEM Application Programming Interface
http://www.openshmem.org
1 stars 0 forks source link

Revise barrier/sync order and cross-reference #45

Closed nspark closed 5 years ago

nspark commented 6 years ago

The opening text for shmem_barrier_all says:

Registers the arrival of a PE at a barrier and blocks the PE until all other PEs arrive at the barrier and all local updates and remote memory updates on the default context are completed.

While the opening text for shmem_barrier says:

Performs all operations described in the shmem_barrier_all interface but with respect to a subset of PEs defined by the active set.

As we update the specification for teams and add predefined teams like SHMEM_TEAM_WORLD, I think it makes more sense to specify the semantics for shmem_team_barrier and shmem_barrier (on active sets) first, then define shmem_barrier_all as shmem_team_barrier(SHMEM_TEAM_WORLD). Further, we can do the same for the shmem_sync family of functions, and define the shmem_barrier family in terms of shmem_team_sync and shmem_ctx_quiet.

Semantically, this would be a no-op change with respect to OpenSHMEM 1.4, however, it would be a nontrivial textual change.

gmegan commented 5 years ago

The current PR #50 deprecates barrier altogether... Some issues with barrier under the current model:

The current PR says that users should migrate away from barrier to use quiet followed by sync.

gmegan commented 5 years ago

Closed per merge of sync/barrier updates