Library Handles¶
The NVSHMEM library provides a set of predefined named constant handles. All named constants can be used in initialization expressions or assignments, but not necessarily in array declarations or as labels in C switch statements. This implies named constants to be link-time but not necessarily compile-time constants.
- NVSHMEM_TEAM_WORLD
Handle of type nvshmem_team_t
that corresponds to the world team
that contains all PEs in the NVSHMEM program. All point-to-point
communication operations and collective synchronizations that do not
specify a team are performed on the world team. See
Section Team Management for more detail about its use.
- NVSHMEM_TEAM_SHARED
Handle of type nvshmem_team_t
that corresponds to a team of PEs that
share a memory domain. NVSHMEM_TEAM_SHARED
refers to the team of all
PEs that would mutually return a non-null address from a call to
nvshmem_ptr
for all symmetric heap objects. That is, nvshmem_ptr
must return a non-null pointer to the local PE for all symmetric heap
objects on all target PEs in the team. This means that symmetric heap
objects on each PE are directly load/store accessible by all PEs in the
team. See Section Team Management for more detail about
its use.
- NVSHMEMX_TEAM_NODE
Handle of type nvshmem_team_t
that corresponds to the team that
contains all PEs in the same node as the calling PE. Using this team in
a call to nvshmem_team_my_pe
may provide an index suitable for use
with cudaSetDevice
.