Open MPI logo

Portable Hardware Locality (hwloc) Documentation: v2.11.2

  |   Home   |   Support   |   FAQ   |  
memattrs.h
1/*
2 * Copyright © 2019-2024 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
16extern "C" {
17#elif 0
18}
19#endif
20
188
197typedef unsigned hwloc_memattr_id_t;
198
204HWLOC_DECLSPEC int
206 const char *name,
208
209
217
230
231
254
286HWLOC_DECLSPEC int
288 struct hwloc_location *location,
289 unsigned *nr,
290 hwloc_obj_t *nodes,
291 unsigned long flags);
292
293
294
317HWLOC_DECLSPEC int
319 hwloc_memattr_id_t attribute,
320 hwloc_obj_t target_node,
321 struct hwloc_location *initiator,
322 unsigned long flags,
323 hwloc_uint64_t *value);
324
353HWLOC_DECLSPEC int
355 hwloc_memattr_id_t attribute,
356 struct hwloc_location *initiator,
357 unsigned long flags,
358 hwloc_obj_t *best_target, hwloc_uint64_t *value);
359
383HWLOC_DECLSPEC int
385 hwloc_memattr_id_t attribute,
386 hwloc_obj_t target_node,
387 unsigned long flags,
388 struct hwloc_location *best_initiator, hwloc_uint64_t *value);
389
428HWLOC_DECLSPEC int
430 hwloc_memattr_id_t attribute,
431 struct hwloc_location *initiator,
432 unsigned long flags,
433 unsigned *nr, hwloc_obj_t *targets, hwloc_uint64_t *values);
434
468HWLOC_DECLSPEC int
470 hwloc_memattr_id_t attribute,
471 hwloc_obj_t target_node,
472 unsigned long flags,
473 unsigned *nr, struct hwloc_location *initiators, hwloc_uint64_t *values);
474
509HWLOC_DECLSPEC int
511 hwloc_memattr_id_t attribute,
512 const char **name);
513
523HWLOC_DECLSPEC int
525 hwloc_memattr_id_t attribute,
526 unsigned long *flags);
527
545
560HWLOC_DECLSPEC int
562 const char *name,
563 unsigned long flags,
565
591HWLOC_DECLSPEC int
593 hwloc_memattr_id_t attribute,
594 hwloc_obj_t target_node,
595 struct hwloc_location *initiator,
596 unsigned long flags,
597 hwloc_uint64_t value);
598
601#ifdef __cplusplus
602} /* extern "C" */
603#endif
604
605
606#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:161
struct hwloc_topology * hwloc_topology_t
Topology context.
Definition hwloc.h:742
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_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:211
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.
hwloc_memattr_id_e
Predefined memory attribute IDs. See hwloc_memattr_id_t for the generic definition of IDs for predefi...
Definition memattrs.h:76
hwloc_local_numanode_flag_e
Flags for selecting target NUMA nodes.
Definition memattrs.h:233
int hwloc_memattr_get_targets(hwloc_topology_t topology, hwloc_memattr_id_t attribute, struct hwloc_location *initiator, unsigned long flags, unsigned *nr, hwloc_obj_t *targets, hwloc_uint64_t *values)
Return the target NUMA nodes that have some values for a given attribute.
unsigned hwloc_memattr_id_t
A memory attribute identifier.
Definition memattrs.h:197
int hwloc_memattr_get_best_initiator(hwloc_topology_t topology, hwloc_memattr_id_t attribute, hwloc_obj_t target_node, 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_LOCATION_TYPE_CPUSET
Location is given as a cpuset, in the location cpuset union field.
Definition memattrs.h:213
@ HWLOC_LOCATION_TYPE_OBJECT
Location is given as an object, in the location object union field.
Definition memattrs.h:215
@ HWLOC_MEMATTR_ID_BANDWIDTH
The "Bandwidth" is returned in MiB/s, as seen from the given initiator location.
Definition memattrs.h:120
@ HWLOC_MEMATTR_ID_WRITE_BANDWIDTH
The "WriteBandwidth" is returned in MiB/s, as seen from the given initiator location.
Definition memattrs.h:142
@ HWLOC_MEMATTR_ID_READ_LATENCY
The "ReadLatency" is returned as nanoseconds, as seen from the given initiator location.
Definition memattrs.h:168
@ HWLOC_MEMATTR_ID_LOCALITY
The "Locality" is returned as the number of PUs in that locality (e.g. the weight of its cpuset).
Definition memattrs.h:105
@ HWLOC_MEMATTR_ID_CAPACITY
The "Capacity" is returned in bytes (local_memory attribute in objects).
Definition memattrs.h:88
@ HWLOC_MEMATTR_ID_WRITE_LATENCY
The "WriteLatency" is returned as nanoseconds, as seen from the given initiator location.
Definition memattrs.h:179
@ HWLOC_MEMATTR_ID_READ_BANDWIDTH
The "ReadBandwidth" is returned in MiB/s, as seen from the given initiator location.
Definition memattrs.h:131
@ HWLOC_MEMATTR_ID_LATENCY
The "Latency" is returned as nanoseconds, as seen from the given initiator location.
Definition memattrs.h:157
@ 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:239
@ 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:246
@ HWLOC_LOCAL_NUMANODE_FLAG_ALL
Select all NUMA nodes in the topology. The initiator initiator is ignored.
Definition memattrs.h:252
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:531
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:539
@ HWLOC_MEMATTR_FLAG_NEED_INITIATOR
The value returned for this memory attribute depends on the given initiator. For instance Bandwidth a...
Definition memattrs.h:543
@ HWLOC_MEMATTR_FLAG_HIGHER_FIRST
The best nodes for this memory attribute are those with the higher values. For instance Bandwidth.
Definition memattrs.h:535
Structure of a topology object.
Definition hwloc.h:431
Where to measure attributes from.
Definition memattrs.h:219
union hwloc_location::hwloc_location_u location
enum hwloc_location_type_e type
Type of location.
Definition memattrs.h:221
Actual location.
Definition memattrs.h:223
hwloc_cpuset_t cpuset
Location as a cpuset, when the location type is HWLOC_LOCATION_TYPE_CPUSET.
Definition memattrs.h:225
hwloc_obj_t object
Location as an object, when the location type is HWLOC_LOCATION_TYPE_OBJECT.
Definition memattrs.h:227