DASH  0.3.0
dart_team_group.h File Reference
#include <dash/dart/if/dart_types.h>
#include <dash/dart/if/dart_util.h>
Include dependency graph for dart_team_group.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Group management operations

Non-collectove operations to create, destroy, and manipulate teams.

Note that dart_group_t is an opaque datastructure that is allocated by all functions creating a group (marked as [out]). This memory has to be released by calling dart_group_destroy after use.

typedef struct dart_group_struct * dart_group_t
 DART groups are represented by an opaque struct dart_group_struct. More...
 
dart_ret_t dart_group_create (dart_group_t *group)
 Allocate and initialize a DART group object. More...
 
dart_ret_t dart_group_destroy (dart_group_t *group)
 Reclaim resources that might be associated with the group. More...
 
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. More...
 
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. More...
 
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. More...
 
dart_ret_t dart_group_addmember (dart_group_t g, dart_global_unit_t unitid)
 Add a member to the group. More...
 
dart_ret_t dart_group_delmember (dart_group_t g, dart_global_unit_t unitid)
 Remove a member from the group. More...
 
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. More...
 
dart_ret_t dart_group_size (const dart_group_t g, size_t *size)
 Determine the size of the group. More...
 
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 by dart_group_size. More...
 
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. More...
 
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. More...
 

Team management operations

Operations to create, destroy, and query team information.

Teams are created based on DART groups.

Note that team creation and destruction are collective operations.

Functions returning DART groups allocate these opaque objects, which then have to be destroyed by the user using dart_group_destroy.

#define DART_TEAM_ALL   ((dart_team_t)0)
 The default team consisting of all units that run the application. More...
 
dart_ret_t dart_team_get_group (dart_team_t teamid, dart_group_t *group)
 Query the group associated with the specified team. More...
 
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. More...
 
dart_ret_t dart_team_destroy (dart_team_t *teamid)
 Free up resources associated with the specified team. More...
 
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. More...
 
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. More...
 
dart_ret_t dart_team_size (dart_team_t teamid, size_t *size)
 Return the size of the specified team. More...
 
dart_ret_t dart_myid (dart_global_unit_t *myid)
 Return the id in the default team DART_TEAM_ALL. More...
 
dart_ret_t dart_size (size_t *size)
 Return the size of the default team DART_TEAM_ALL. More...
 
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. More...
 
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. More...