DASH  0.3.0
Locality- and topolgy discovery

A set of routines to query and remodel the locality domain hierarchy and the logical arrangement of teams. More...

Collaboration diagram for Locality- and topolgy discovery:

Functions

dart_ret_t dart_team_locality_init (dart_team_t team)
 Initialize information of the specified team. More...
 
dart_ret_t dart_team_locality_finalize (dart_team_t team)
 Initialize information of the specified team. More...
 
dart_ret_t dart_domain_team_locality (dart_team_t team, const char *domain_tag, dart_domain_locality_t **team_domain_out)
 Locality information of the team domain with the specified id tag. More...
 
dart_ret_t dart_domain_create (dart_domain_locality_t **domain_out)
 Default constructor. More...
 
dart_ret_t dart_domain_clone (const dart_domain_locality_t *domain_in, dart_domain_locality_t **domain_out)
 Copy-constructor. More...
 
dart_ret_t dart_domain_destroy (dart_domain_locality_t *domain)
 Destructor. More...
 
dart_ret_t dart_domain_assign (dart_domain_locality_t *domain_lhs, const dart_domain_locality_t *domain_rhs)
 Assignment operator. More...
 
dart_ret_t dart_domain_find (const dart_domain_locality_t *domain_in, const char *domain_tag, dart_domain_locality_t **subdomain_out)
 Locality information of the subdomain with the specified id tag. More...
 
dart_ret_t dart_domain_select (dart_domain_locality_t *domain_in, int num_subdomain_tags, const char **subdomain_tags)
 Remove domains in locality domain hierarchy that do not match the specified domain tags and are not a parent of a matched domain. More...
 
dart_ret_t dart_domain_exclude (dart_domain_locality_t *domain_in, int num_subdomain_tags, const char **subdomain_tags)
 Remove domains in locality domain hierarchy matching the specified domain tags. More...
 
dart_ret_t dart_domain_add_subdomain (dart_domain_locality_t *domain, dart_domain_locality_t *subdomain, int subdomain_rel_id)
 Insert locality domain into subdomains of a domain at the specified relative index. More...
 
dart_ret_t dart_domain_move_subdomain (dart_domain_locality_t *domain, dart_domain_locality_t *new_parent_domain, int new_domain_rel_id)
 Move locality domain in the locality hierarchy. More...
 
dart_ret_t dart_domain_split_scope (const dart_domain_locality_t *domain_in, dart_locality_scope_t scope, int num_parts, dart_domain_locality_t *split_domain_out)
 Split locality domain hierarchy at given domain tag into num_parts groups at specified scope. More...
 
dart_ret_t dart_domain_scope_tags (const dart_domain_locality_t *domain_in, dart_locality_scope_t scope, int *num_domains_out, char ***domain_tags_out)
 Domain tags of domains at the specified locality scope. More...
 
dart_ret_t dart_domain_scope_domains (const dart_domain_locality_t *domain_in, dart_locality_scope_t scope, int *num_domains_out, dart_domain_locality_t ***domains_out)
 Locality domains at the specified locality scope. More...
 
dart_ret_t dart_domain_group (dart_domain_locality_t *domain_in, int num_group_subdomains, const char **group_subdomain_tags, char *group_domain_tag_out)
 Adds entries to locality hierarchy to group locality domains. More...
 
dart_ret_t dart_unit_locality (dart_team_t team, dart_team_unit_t unit, dart_unit_locality_t **loc)
 Locality information of the unit with the specified team-relative id. More...
 

Detailed Description

A set of routines to query and remodel the locality domain hierarchy and the logical arrangement of teams.

Function Documentation

◆ dart_domain_add_subdomain()

dart_ret_t dart_domain_add_subdomain ( dart_domain_locality_t domain,
dart_domain_locality_t subdomain,
int  subdomain_rel_id 
)

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_locality.h>

Insert locality domain into subdomains of a domain at the specified relative index.

Tags of inserted subdomains are updated according to the parent domain. Units mapped to inserted subdomains are added to ancestor domains recursively. Units mapped to inserted subdomains must not be mapped to the target domain hierarchy already.

Thread safety
This function is safe to be called by multiple threads in parallel.

◆ dart_domain_assign()

dart_ret_t dart_domain_assign ( dart_domain_locality_t domain_lhs,
const dart_domain_locality_t domain_rhs 
)

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_locality.h>

Assignment operator.

Overwrites domain object domain_lhs with a deep copy of domain object domain_rhs.

Thread safety
This function is safe to be called by multiple threads in parallel.

◆ dart_domain_clone()

dart_ret_t dart_domain_clone ( const dart_domain_locality_t domain_in,
dart_domain_locality_t **  domain_out 
)

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_locality.h>

Copy-constructor.

Create a new locality domain object as a deep copy of a specified locality domain.

Thread safety
This function is safe to be called by multiple threads in parallel.

◆ dart_domain_create()

dart_ret_t dart_domain_create ( dart_domain_locality_t **  domain_out)

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_locality.h>

Default constructor.

Create an empty locality domain object.

Thread safety
This function is safe to be called by multiple threads in parallel.

◆ dart_domain_destroy()

dart_ret_t dart_domain_destroy ( dart_domain_locality_t domain)

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_locality.h>

Destructor.

Delete a locality domain object.

Thread safety
This function is safe to be called by multiple threads in parallel.

◆ dart_domain_exclude()

dart_ret_t dart_domain_exclude ( dart_domain_locality_t domain_in,
int  num_subdomain_tags,
const char **  subdomain_tags 
)

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_locality.h>

Remove domains in locality domain hierarchy matching the specified domain tags.

Thread safety
This function is safe to be called by multiple threads in parallel.

◆ dart_domain_find()

dart_ret_t dart_domain_find ( const dart_domain_locality_t domain_in,
const char *  domain_tag,
dart_domain_locality_t **  subdomain_out 
)

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_locality.h>

Locality information of the subdomain with the specified id tag.

Thread safety
This function is safe to be called by multiple threads in parallel.

◆ dart_domain_group()

dart_ret_t dart_domain_group ( dart_domain_locality_t domain_in,
int  num_group_subdomains,
const char **  group_subdomain_tags,
char *  group_domain_tag_out 
)

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_locality.h>

Adds entries to locality hierarchy to group locality domains.

Thread safety
This function is safe to be called by multiple threads in parallel.

◆ dart_domain_move_subdomain()

dart_ret_t dart_domain_move_subdomain ( dart_domain_locality_t domain,
dart_domain_locality_t new_parent_domain,
int  new_domain_rel_id 
)

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_locality.h>

Move locality domain in the locality hierarchy.

The specified domain is added to the children of another domain in the same locality hierarchy at the specified relative index.

Tags of inserted subdomains are updated according to the parent domain. Units mapped to inserted subdomains are added to ancestor domains recursively. Units mapped to inserted subdomains must not be mapped to the target domain hierarchy already.

Thread safety
This function is safe to be called by multiple threads in parallel.

◆ dart_domain_scope_domains()

dart_ret_t dart_domain_scope_domains ( const dart_domain_locality_t domain_in,
dart_locality_scope_t  scope,
int *  num_domains_out,
dart_domain_locality_t ***  domains_out 
)

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_locality.h>

Locality domains at the specified locality scope.

Thread safety
This function is safe to be called by multiple threads in parallel.

◆ dart_domain_scope_tags()

dart_ret_t dart_domain_scope_tags ( const dart_domain_locality_t domain_in,
dart_locality_scope_t  scope,
int *  num_domains_out,
char ***  domain_tags_out 
)

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_locality.h>

Domain tags of domains at the specified locality scope.

Thread safety
This function is safe to be called by multiple threads in parallel.

◆ dart_domain_select()

dart_ret_t dart_domain_select ( dart_domain_locality_t domain_in,
int  num_subdomain_tags,
const char **  subdomain_tags 
)

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_locality.h>

Remove domains in locality domain hierarchy that do not match the specified domain tags and are not a parent of a matched domain.

Thread safety
This function is safe to be called by multiple threads in parallel.

◆ dart_domain_split_scope()

dart_ret_t dart_domain_split_scope ( const dart_domain_locality_t domain_in,
dart_locality_scope_t  scope,
int  num_parts,
dart_domain_locality_t split_domain_out 
)

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_locality.h>

Split locality domain hierarchy at given domain tag into num_parts groups at specified scope.

Thread safety
This function is safe to be called by multiple threads in parallel.

◆ dart_domain_team_locality()

dart_ret_t dart_domain_team_locality ( dart_team_t  team,
const char *  domain_tag,
dart_domain_locality_t **  team_domain_out 
)

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_locality.h>

Locality information of the team domain with the specified id tag.

Thread safety
This function is safe to be called by multiple threads in parallel.

◆ dart_team_locality_finalize()

dart_ret_t dart_team_locality_finalize ( dart_team_t  team)

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_locality.h>

Initialize information of the specified team.

Thread safety
This function is not thread-safe.

Referenced by dash::Team::global_id().

◆ dart_team_locality_init()

dart_ret_t dart_team_locality_init ( dart_team_t  team)

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_locality.h>

Initialize information of the specified team.

Thread safety
This function is not thread-safe.

Referenced by dash::Team::global_id().

◆ dart_unit_locality()

dart_ret_t dart_unit_locality ( dart_team_t  team,
dart_team_unit_t  unit,
dart_unit_locality_t **  loc 
)

#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_locality.h>

Locality information of the unit with the specified team-relative id.

Thread safety
This function is safe to be called by multiple threads in parallel.