Open MPI logo

Portable Hardware Locality (hwloc) Documentation: v2.4.1

  |   Home   |   Support   |   FAQ   |  
memattrs.h
1 /*
2  * Copyright © 2019-2020 Inria. All rights reserved.
3  * See COPYING in top-level directory.
4  */
5 
10 #ifndef HWLOC_MEMATTR_H
11 #define HWLOC_MEMATTR_H
12 
13 #include "hwloc.h"
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #elif 0
18 }
19 #endif
20 
78 
92 
100 
108 
109  /* TODO read vs write, persistence? */
110 };
111 
115 typedef unsigned hwloc_memattr_id_t;
116 
119 HWLOC_DECLSPEC int
121  const char *name,
122  hwloc_memattr_id_t *id);
123 
124 
131 };
132 
144 };
145 
146 
155 
162 
168 };
169 
199 HWLOC_DECLSPEC int
201  struct hwloc_location *location,
202  unsigned *nr,
203  hwloc_obj_t *nodes,
204  unsigned long flags);
205 
206 
207 
222 HWLOC_DECLSPEC int
224  hwloc_memattr_id_t attribute,
225  hwloc_obj_t target_node,
226  struct hwloc_location *initiator,
227  unsigned long flags,
228  hwloc_uint64_t *value);
229 
255 HWLOC_DECLSPEC int
257  hwloc_memattr_id_t attribute,
258  struct hwloc_location *initiator,
259  unsigned long flags,
260  hwloc_obj_t *best_target, hwloc_uint64_t *value);
261 
284 HWLOC_DECLSPEC int
286  hwloc_memattr_id_t attribute,
287  hwloc_obj_t target,
288  unsigned long flags,
289  struct hwloc_location *best_initiator, hwloc_uint64_t *value);
290 
300 HWLOC_DECLSPEC int
302  hwloc_memattr_id_t attribute,
303  const char **name);
304 
309 HWLOC_DECLSPEC int
311  hwloc_memattr_id_t attribute,
312  unsigned long *flags);
313 
330 };
331 
338 HWLOC_DECLSPEC int
340  const char *name,
341  unsigned long flags,
342  hwloc_memattr_id_t *id);
343 
362 HWLOC_DECLSPEC int
364  hwloc_memattr_id_t attribute,
365  hwloc_obj_t target_node,
366  struct hwloc_location *initiator,
367  unsigned long flags,
368  hwloc_uint64_t value);
369 
406 HWLOC_DECLSPEC int
408  hwloc_memattr_id_t attribute,
409  struct hwloc_location *initiator,
410  unsigned long flags,
411  unsigned *nrp, hwloc_obj_t *targets, hwloc_uint64_t *values);
412 
442 HWLOC_DECLSPEC int
444  hwloc_memattr_id_t attribute,
445  hwloc_obj_t target_node,
446  unsigned long flags,
447  unsigned *nr, struct hwloc_location *initiators, hwloc_uint64_t *values);
450 #ifdef __cplusplus
451 } /* extern "C" */
452 #endif
453 
454 
455 #endif /* HWLOC_MEMATTR_H */
hwloc_bitmap_t hwloc_cpuset_t
A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.
Definition: hwloc.h:140
struct hwloc_topology * hwloc_topology_t
Topology context.
Definition: hwloc.h:691
int hwloc_memattr_get_value(hwloc_topology_t topology, hwloc_memattr_id_t attribute, hwloc_obj_t target_node, struct hwloc_location *initiator, unsigned long flags, hwloc_uint64_t *value)
Return an attribute value for a specific target NUMA node.
hwloc_location_type_e
Type of location.
Definition: memattrs.h:126
int hwloc_get_local_numanode_objs(hwloc_topology_t topology, struct hwloc_location *location, unsigned *nr, hwloc_obj_t *nodes, unsigned long flags)
Return an array of local NUMA nodes.
int hwloc_memattr_get_by_name(hwloc_topology_t topology, const char *name, hwloc_memattr_id_t *id)
Return the identifier of the memory attribute with the given name.
int hwloc_memattr_get_best_target(hwloc_topology_t topology, hwloc_memattr_id_t attribute, struct hwloc_location *initiator, unsigned long flags, hwloc_obj_t *best_target, hwloc_uint64_t *value)
Return the best target NUMA node for the given attribute and initiator.
int hwloc_memattr_get_best_initiator(hwloc_topology_t topology, hwloc_memattr_id_t attribute, hwloc_obj_t target, unsigned long flags, struct hwloc_location *best_initiator, hwloc_uint64_t *value)
Return the best initiator for the given attribute and target NUMA node.
hwloc_memattr_id_e
Memory node attributes.
Definition: memattrs.h:67
hwloc_local_numanode_flag_e
Flags for selecting target NUMA nodes.
Definition: memattrs.h:148
unsigned hwloc_memattr_id_t
A memory attribute identifier. May be either one of hwloc_memattr_id_e or a new id returned by hwloc_...
Definition: memattrs.h:115
@ HWLOC_LOCATION_TYPE_CPUSET
Location is given as a cpuset, in the location cpuset union field.
Definition: memattrs.h:128
@ HWLOC_LOCATION_TYPE_OBJECT
Location is given as an object, in the location object union field.
Definition: memattrs.h:130
@ HWLOC_MEMATTR_ID_BANDWIDTH
"Bandwidth". The bandwidth is returned in MiB/s, as seen from the given initiator location....
Definition: memattrs.h:99
@ HWLOC_MEMATTR_ID_LOCALITY
"Locality". The locality is returned as the number of PUs in that locality (e.g. the weight of its cp...
Definition: memattrs.h:91
@ HWLOC_MEMATTR_ID_CAPACITY
"Capacity". The capacity is returned in bytes (local_memory attribute in objects).
Definition: memattrs.h:77
@ HWLOC_MEMATTR_ID_LATENCY
"Latency". The latency is returned as nanoseconds, as seen from the given initiator location....
Definition: memattrs.h:107
@ HWLOC_LOCAL_NUMANODE_FLAG_LARGER_LOCALITY
Select NUMA nodes whose locality is larger than the given cpuset. For instance, if a single PU (or it...
Definition: memattrs.h:154
@ HWLOC_LOCAL_NUMANODE_FLAG_SMALLER_LOCALITY
Select NUMA nodes whose locality is smaller than the given cpuset. For instance, if a package (or its...
Definition: memattrs.h:161
@ HWLOC_LOCAL_NUMANODE_FLAG_ALL
Select all NUMA nodes in the topology. The initiator initiator is ignored.
Definition: memattrs.h:167
int hwloc_memattr_get_initiators(hwloc_topology_t topology, hwloc_memattr_id_t attribute, hwloc_obj_t target_node, unsigned long flags, unsigned *nr, struct hwloc_location *initiators, hwloc_uint64_t *values)
Return the initiators that have values for a given attribute for a specific target NUMA node.
int hwloc_memattr_get_targets(hwloc_topology_t topology, hwloc_memattr_id_t attribute, struct hwloc_location *initiator, unsigned long flags, unsigned *nrp, hwloc_obj_t *targets, hwloc_uint64_t *values)
Return the target NUMA nodes that have some values for a given attribute.
int hwloc_memattr_get_flags(hwloc_topology_t topology, hwloc_memattr_id_t attribute, unsigned long *flags)
Return the flags of the given attribute.
int hwloc_memattr_get_name(hwloc_topology_t topology, hwloc_memattr_id_t attribute, const char **name)
Return the name of a memory attribute.
int hwloc_memattr_register(hwloc_topology_t topology, const char *name, unsigned long flags, hwloc_memattr_id_t *id)
Register a new memory attribute.
hwloc_memattr_flag_e
Memory attribute flags. Given to hwloc_memattr_register() and returned by hwloc_memattr_get_flags().
Definition: memattrs.h:317
int hwloc_memattr_set_value(hwloc_topology_t topology, hwloc_memattr_id_t attribute, hwloc_obj_t target_node, struct hwloc_location *initiator, unsigned long flags, hwloc_uint64_t value)
Set an attribute value for a specific target NUMA node.
@ HWLOC_MEMATTR_FLAG_LOWER_FIRST
The best nodes for this memory attribute are those with the lower values. For instance Latency.
Definition: memattrs.h:325
@ HWLOC_MEMATTR_FLAG_NEED_INITIATOR
The value returned for this memory attribute depends on the given initiator. For instance Bandwidth a...
Definition: memattrs.h:329
@ HWLOC_MEMATTR_FLAG_HIGHER_FIRST
The best nodes for this memory attribute are those with the higher values. For instance Bandwidth.
Definition: memattrs.h:321
Structure of a topology object.
Definition: hwloc.h:395
Where to measure attributes from.
Definition: memattrs.h:134
union hwloc_location::hwloc_location_u location
enum hwloc_location_type_e type
Type of location.
Definition: memattrs.h:136
Actual location.
Definition: memattrs.h:138
hwloc_cpuset_t cpuset
Location as a cpuset, when the location type is HWLOC_LOCATION_TYPE_CPUSET.
Definition: memattrs.h:140
hwloc_obj_t object
Location as an object, when the location type is HWLOC_LOCATION_TYPE_OBJECT.
Definition: memattrs.h:142