DASH  0.3.0
dart_locality.h
Go to the documentation of this file.
1 
10 #ifndef DART__LOCALITY_H_
11 #define DART__LOCALITY_H_
12 
14 #include <dash/dart/if/dart_util.h>
15 
16 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
26 #define DART_INTERFACE_ON
27 
36  dart_team_t team) DART_NOTHROW;
37 
45  dart_team_t team) DART_NOTHROW;
46 
54  dart_team_t team,
55  const char * domain_tag,
56  dart_domain_locality_t ** team_domain_out) DART_NOTHROW;
57 
66  dart_domain_locality_t ** domain_out) DART_NOTHROW;
67 
77  const dart_domain_locality_t * domain_in,
78  dart_domain_locality_t ** domain_out) DART_NOTHROW;
79 
88  dart_domain_locality_t * domain) DART_NOTHROW;
89 
99  dart_domain_locality_t * domain_lhs,
100  const dart_domain_locality_t * domain_rhs) DART_NOTHROW;
101 
109  const dart_domain_locality_t * domain_in,
110  const char * domain_tag,
111  dart_domain_locality_t ** subdomain_out) DART_NOTHROW;
112 
121  dart_domain_locality_t * domain_in,
122  int num_subdomain_tags,
123  const char ** subdomain_tags) DART_NOTHROW;
124 
133  dart_domain_locality_t * domain_in,
134  int num_subdomain_tags,
135  const char ** subdomain_tags) DART_NOTHROW;
136 
151  dart_domain_locality_t * subdomain,
152  int subdomain_rel_id) DART_NOTHROW;
153 
170  dart_domain_locality_t * new_parent_domain,
171  int new_domain_rel_id) DART_NOTHROW;
172 
181  const dart_domain_locality_t * domain_in,
182  dart_locality_scope_t scope,
183  int num_parts,
184  dart_domain_locality_t * split_domain_out) DART_NOTHROW;
185 
193  const dart_domain_locality_t * domain_in,
194  dart_locality_scope_t scope,
195  int * num_domains_out,
196  char *** domain_tags_out) DART_NOTHROW;
197 
205  const dart_domain_locality_t * domain_in,
206  dart_locality_scope_t scope,
207  int * num_domains_out,
208  dart_domain_locality_t *** domains_out) DART_NOTHROW;
209 
217  dart_domain_locality_t * domain_in,
218  int num_group_subdomains,
219  const char ** group_subdomain_tags,
220  char * group_domain_tag_out) DART_NOTHROW;
221 
229  dart_team_t team,
230  dart_team_unit_t unit,
231  dart_unit_locality_t ** loc) DART_NOTHROW;
232 
234 #define DART_INTERFACE_OFF
235 
237 #ifdef __cplusplus
238 } /* extern "C" */
239 #endif
240 
241 #endif /* DART__LOCALITY_H_ */
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.
Definition: dart_types.h:672
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...
Definition: dart_types.h:597
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.
Definition: dart_types.h:180
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.
Definition: dart_types.h:30
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.
Definition: dart_types.h:252
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.
Definition: dart_types.h:290
constexpr auto domain(ViewT &&view) -> typename std::enable_if< dash::detail::has_type_domain_type< ViewValueT >::value, decltype(std::forward< ViewT >(view).domain()) >::type
Definition: Domain.h:23
dart_ret_t dart_domain_create(dart_domain_locality_t **domain_out)
Default constructor.