# hwlocality_helper_distribute man page

hwlocality_helper_distribute — Distributing items over a topology

### Enumerations

enumhwloc_distrib_flags_e{HWLOC_DISTRIB_FLAG_REVERSE}

### Functions

static inthwloc_distrib(hwloc_topology_ttopology,hwloc_obj_t*roots, unsigned n_roots,hwloc_cpuset_t*set, unsigned n, unsigned until, unsigned long flags)

## Enumeration Type Documentation

### enum hwloc_distrib_flags_e

Flags to be given to **hwloc_distrib()**.

**Enumerator**

*HWLOC_DISTRIB_FLAG_REVERSE*- Distrib in reverse order, starting from the last objects.

## Function Documentation

### static int hwloc_distrib (hwloc_topology_t topology, hwloc_obj_t * roots, unsigned n_roots, hwloc_cpuset_t * set, unsigned n, unsigned until, unsigned long flags) [inline], [static]

Distribute `n`

items over the topology under `roots`

. Array `set`

will be filled with `n`

cpusets recursively distributed linearly over the topology under objects `roots`

, down to depth `until`

(which can be INT_MAX to distribute down to the finest level).

`n_roots`

is usually 1 and `roots`

only contains the topology root object so as to distribute over the entire topology.

This is typically useful when an application wants to distribute `n`

threads over a machine, giving each of them as much private cache as possible and keeping them locally in number order.

The caller may typically want to also call **hwloc_bitmap_singlify()** before binding a thread so that it does not move at all.

`flags`

should be 0 or a OR'ed set of **hwloc_distrib_flags_e**.

**Note:**

This function requires the `roots`

objects to have a CPU set.

This function replaces the now deprecated hwloc_distribute() and hwloc_distributev() functions.

## Author

Generated automatically by Doxygen for Hardware Locality (hwloc) from the source code.

## Referenced By

hwloc_distrib(3), HWLOC_DISTRIB_FLAG_REVERSE(3) and hwloc_distrib_flags_e(3) are aliases of hwlocality_helper_distribute(3).