gmegan / specification

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

Avoid use of "WORLD" constant #116

Open naughtont3 opened 5 years ago

naughtont3 commented 5 years ago

The Teams specification introduces logical grouping for PEs. The current draft includes the use of a `WORLD' constant that defines the "all PEs" scope. This is an implicit definition that can be referred to and its purpose is useful as a method to refer to "all".

However, embedding this scope as a constant could be problematic for future OpenSHMEM capabilities, e.g., dynamics, fault tolerance, etc. For example, in MPI this implicit definition of "WORLD" raises challenges for resilience and in general the latest MPI Sessions work is attempt to move away from implicit scoping of processes.

It seems this could be avoided by adding another API call that would allow the user to create the "WORLD" group upon initialization. For example, maybe something like the following (which is very much inspired by the MPI Sessions API):

 shmem_team_t world = shmem_team_group_query("shm://WORLD");
 shmem_team_t self  = shmem_team_group_query("shm://SELF");

DISCUSSIONS:

jdinan commented 5 years ago

Can these APIs be used for anything beyond querying a handle to the WORLD and SELF teams? In the absence of a "session" returned by calling init, I'm not sure benefit vs complexity tradeoff wins.