10 #ifndef DART__LOCALITY_H_ 11 #define DART__LOCALITY_H_ 14 #include <dash/dart/if/dart_util.h> 26 #define DART_INTERFACE_ON 55 const char * domain_tag,
110 const char * domain_tag,
122 int num_subdomain_tags,
123 const char ** subdomain_tags) DART_NOTHROW;
134 int num_subdomain_tags,
135 const char ** subdomain_tags) DART_NOTHROW;
152 int subdomain_rel_id) DART_NOTHROW;
171 int new_domain_rel_id) DART_NOTHROW;
195 int * num_domains_out,
196 char *** domain_tags_out) DART_NOTHROW;
207 int * num_domains_out,
218 int num_group_subdomains,
219 const char ** group_subdomain_tags,
220 char * group_domain_tag_out) DART_NOTHROW;
234 #define DART_INTERFACE_OFF 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...
dart_ret_t dart_domain_clone(const dart_domain_locality_t *domain_in, dart_domain_locality_t **domain_out)
Copy-constructor.
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.
Locality and topology information of a single unit.
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.
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.
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.
dart_ret_t dart_domain_destroy(dart_domain_locality_t *domain)
Destructor.
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.
dart_ret_t dart_team_locality_finalize(dart_team_t team)
Initialize information of the specified team.
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_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...
Data type for storing a unit ID relative to a team.
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.
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.
dart_ret_t dart_team_locality_init(dart_team_t team)
Initialize information of the specified team.
dart_ret_t
Return values of functions in the DART interface.
dart_ret_t dart_domain_assign(dart_domain_locality_t *domain_lhs, const dart_domain_locality_t *domain_rhs)
Assignment operator.
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.
int16_t dart_team_t
Data type for storing a team ID.
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.
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
dart_ret_t dart_domain_create(dart_domain_locality_t **domain_out)
Default constructor.