1 #ifndef DART_TEAM_GROUP_H_INCLUDED 2 #define DART_TEAM_GROUP_H_INCLUDED 5 #include <dash/dart/if/dart_util.h> 42 #define DART_INTERFACE_ON 88 dart_group_t *group) DART_NOTHROW;
103 const dart_group_t gin,
104 dart_group_t * gout) DART_NOTHROW;
120 const dart_group_t g1,
121 const dart_group_t g2,
122 dart_group_t * gout) DART_NOTHROW;
138 const dart_group_t g1,
139 const dart_group_t g2,
140 dart_group_t * gout) DART_NOTHROW;
188 const dart_group_t g,
190 int32_t * ismember) DART_NOTHROW;
205 const dart_group_t g,
206 size_t *
size) DART_NOTHROW;
223 const dart_group_t g,
244 const dart_group_t g,
247 dart_group_t * gout) DART_NOTHROW;
272 const dart_group_t g,
277 dart_group_t * gout) DART_NOTHROW;
302 #define DART_TEAM_ALL ((dart_team_t)0) 304 #define DART_TEAM_NULL ((dart_team_t)-1) 306 #define DART_GROUP_NULL ((struct dart_group_struct*)NULL) 323 dart_group_t * group) DART_NOTHROW;
372 const dart_group_t group,
462 size_t *
size) DART_NOTHROW;
529 #define DART_INTERFACE_OFF global_unit_t myid()
Shortcut to query the global unit ID of the calling unit.
struct dart_group_struct * dart_group_t
DART groups are represented by an opaque struct dart_group_struct.
size_t size()
Return the number of units in the global team.
dart_ret_t dart_team_myid(dart_team_t teamid, dart_team_unit_t *myid)
Return the unit id of the caller in the specified team.
dart_ret_t dart_group_locality_split(const dart_group_t g, dart_domain_locality_t *domain, dart_locality_scope_t scope, size_t n, size_t *nout, dart_group_t *gout)
Split the group g into n groups by the specified locality scope.
dart_ret_t dart_team_destroy(dart_team_t *teamid)
Free up resources associated with the specified team.
dart_ret_t dart_group_union(const dart_group_t g1, const dart_group_t g2, dart_group_t *gout)
Create a union of two groups.
dart_ret_t dart_team_size(dart_team_t teamid, size_t *size)
Return the size of the specified team.
dart_ret_t dart_group_addmember(dart_group_t g, dart_global_unit_t unitid)
Add a member to the group.
dart_ret_t dart_team_clone(dart_team_t team, dart_team_t *newteam)
Clone a DART team object by duplicating the underlying team information.
dart_ret_t dart_myid(dart_global_unit_t *myid)
Return the id in the default team DART_TEAM_ALL.
A domain is a group of processing entities such as cores in a specific NUMA domain or a Intel MIC ent...
dart_ret_t dart_group_ismember(const dart_group_t g, dart_global_unit_t unitid, int32_t *ismember)
Test if a unit is a member of the group.
dart_ret_t dart_team_get_group(dart_team_t teamid, dart_group_t *group)
Query the group associated with the specified team.
Data type for storing a unit ID relative to a team.
dart_ret_t dart_group_delmember(dart_group_t g, dart_global_unit_t unitid)
Remove a member from the group.
dart_ret_t dart_size(size_t *size)
Return the size of the default team DART_TEAM_ALL.
dart_ret_t dart_group_getmembers(const dart_group_t g, dart_global_unit_t *unitids)
Get all the members of the group, unitids must be large enough to hold the number of members returned...
dart_ret_t dart_group_clone(const dart_group_t gin, dart_group_t *gout)
Create a copy of the group gin, allocating resources for gout.
dart_ret_t dart_group_create(dart_group_t *group)
Allocate and initialize a DART group object.
dart_ret_t
Return values of functions in the DART interface.
dart_ret_t dart_group_size(const dart_group_t g, size_t *size)
Determine the size of the group.
dart_ret_t dart_group_destroy(dart_group_t *group)
Reclaim resources that might be associated with the group.
int16_t dart_team_t
Data type for storing a team ID.
Data type for storing a global unit ID.
dart_ret_t dart_group_split(const dart_group_t g, size_t n, size_t *nout, dart_group_t *gout)
Split the group into n groups of approx.
dart_ret_t dart_team_create(dart_team_t teamid, const dart_group_t group, dart_team_t *newteam)
Create a new team from the specified group.
dart_ret_t dart_group_intersect(const dart_group_t g1, const dart_group_t g2, dart_group_t *gout)
Create an intersection of the two groups.
dart_ret_t dart_team_unit_g2l(dart_team_t team, dart_global_unit_t globalid, dart_team_unit_t *localid)
Convert from a global to a local unit ID.
dart_ret_t dart_team_unit_l2g(dart_team_t team, dart_team_unit_t localid, dart_global_unit_t *globalid)
Convert from a local to a global unit ID.
dart_locality_scope_t
Scopes of locality domains.
constexpr auto domain(ViewT &&view) -> typename std::enable_if< dash::detail::has_type_domain_type< ViewValueT >::value, decltype(std::forward< ViewT >(view).domain()) >::type