Problem
The SHMEM_TEAM_SHARED team is defined to contain all of the PEs that will return a non-null pointer from shmem_ptr.
Many (most?) SHMEM implementations get the PE ID to process mapping from the launcher. Many launchers allow the user to specify the PE ID mapping. Thus, the PE IDs in a node may not fit the desired linear translation function with <start, stride, size> parameters.
Implementations must therefore choose one of these options:
- Restrict
shmem_ptr to PEs that can be captured in SHMEM_TEAM_SHARED <start, stride, size> mapping.
- Support a general (nonlinear) mapping so
SHMEM_TEAM_SHARED can capture all PEs accessible via shared memory. Note that SHMEM_TEAM_SHARED is valid for collectives, team constructors, and context constructors (i.e. in point-to-point operations). Thus, this team representation would need to be supported in many API routines.
- Abort if shared memory PEs don't fit linear mapping.
Proposed Change
This is a general problem for any topology-derived teams.
I suggest that we relax the specification to state that PEs in SHMEM_TEAM_SHARED must be accessible via shmem_ptr, but that it need not include all PEs that are accessible via shmem_ptr.
Problem
The
SHMEM_TEAM_SHAREDteam is defined to contain all of the PEs that will return a non-null pointer fromshmem_ptr.Many (most?) SHMEM implementations get the PE ID to process mapping from the launcher. Many launchers allow the user to specify the PE ID mapping. Thus, the PE IDs in a node may not fit the desired linear translation function with
<start, stride, size>parameters.Implementations must therefore choose one of these options:
shmem_ptrto PEs that can be captured inSHMEM_TEAM_SHARED<start, stride, size>mapping.SHMEM_TEAM_SHAREDcan capture all PEs accessible via shared memory. Note thatSHMEM_TEAM_SHAREDis valid for collectives, team constructors, and context constructors (i.e. in point-to-point operations). Thus, this team representation would need to be supported in many API routines.Proposed Change
This is a general problem for any topology-derived teams.
I suggest that we relax the specification to state that PEs in
SHMEM_TEAM_SHAREDmust be accessible viashmem_ptr, but that it need not include all PEs that are accessible viashmem_ptr.