Hardware Locality (hwloc): Object Sets (hwloc_cpuset_t and hwloc_nodeset_t)

Hardware Locality (hwloc) 1.11.7

Typedefs
Object Sets (hwloc_cpuset_t and hwloc_nodeset_t)

## Typedefs
typedef hwloc_bitmap_t | hwloc_cpuset_t
typedef hwloc_const_bitmap_t | hwloc_const_cpuset_t
typedef hwloc_bitmap_t | hwloc_nodeset_t
typedef hwloc_const_bitmap_t | hwloc_const_nodeset_t

## Detailed Description

Hwloc uses bitmaps to represent two distinct kinds of object sets: CPU sets (hwloc_cpuset_t) and NUMA node sets (hwloc_nodeset_t). These types are both typedefs to a common back end type (hwloc_bitmap_t), and therefore all the hwloc bitmap functions are applicable to both hwloc_cpuset_t and hwloc_nodeset_t (see The bitmap API).

The rationale for having two different types is that even though the actions one wants to perform on these types are the same (e.g., enable and disable individual items in the set/mask), they're used in very different contexts: one for specifying which processors to use and one for specifying which NUMA nodes to use. Hence, the name difference is really just to reflect the intent of where the type is used.

## Typedef Documentation

## § hwloc_const_cpuset_t

typedef hwloc_const_bitmap_t hwloc_const_cpuset_t

A non-modifiable hwloc_cpuset_t.

## § hwloc_const_nodeset_t

typedef hwloc_const_bitmap_t hwloc_const_nodeset_t

A non-modifiable hwloc_nodeset_t.

## § hwloc_cpuset_t

typedef hwloc_bitmap_t hwloc_cpuset_t

A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.

It may be consulted and modified with the bitmap API as any hwloc_bitmap_t (see hwloc/bitmap.h).

Each bit may be converted into a PU object using hwloc_get_pu_obj_by_os_index().

## § hwloc_nodeset_t

typedef hwloc_bitmap_t hwloc_nodeset_t

A node set is a bitmap whose bits are set according to NUMA memory node physical OS indexes.

It may be consulted and modified with the bitmap API as any hwloc_bitmap_t (see hwloc/bitmap.h). Each bit may be converted into a NUMA node object using hwloc_get_numanode_obj_by_os_index().

When binding memory on a system without any NUMA node (when the whole memory is considered as a single memory bank), the nodeset may be either empty (no memory selected) or full (whole system memory selected).

See also Converting between CPU sets and node sets.