# Binding Helpers

## Functions

static __hwloc_inline void | hwloc_distribute (hwloc_topology_t topology, hwloc_obj_t root, hwloc_cpuset_t *cpuset, unsigned n)
| Distribute `n` items over the topology under `root`.

## Function Documentation

static __hwloc_inline void hwloc_distribute | ( | hwloc_topology_t | topology,
|  | hwloc_obj_t | root,
|  | hwloc_cpuset_t * | cpuset,
|  | unsigned | n |
| ) |  |  | `[static]`

Distribute `n` items over the topology under `root`.

Array `cpuset` will be filled with `n` cpusets distributed linearly over the topology under `root` .

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_cpuset_singlify() before binding a thread so that it does not move at all.