manpagez: man pages & more
man hwlocality_helper_distribute(3)
Home | html | info | man
hwlocality_helper_distribute(3)                       Library Functions Manual


NAME

       hwlocality_helper_distribute - Distributing items over a topology


SYNOPSIS

   Enumerations
       enum hwloc_distrib_flags_e { HWLOC_DISTRIB_FLAG_REVERSE }

   Functions
       static int hwloc_distrib (hwloc_topology_t topology, hwloc_obj_t
           *roots, unsigned n_roots, hwloc_cpuset_t *set, unsigned n, int
           until, unsigned long flags)


Detailed Description


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, int 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.

       Returns
           0 on success, -1 on error.

       Note
           On hybrid CPUs (or asymmetric platforms), distribution may be
           suboptimal since the number of cores or PUs inside packages or
           below caches may vary (the top-down recursive partitioning ignores
           these numbers until reaching their levels). Hence it is recommended
           to distribute only inside a single homogeneous domain. For instance
           on a CPU with energy-efficient E-cores and high-performance P-
           cores, one should distribute separately N tasks on E-cores and M
           tasks on P-cores instead of trying to distribute directly M+N tasks
           on the entire CPUs.

           This function requires the roots objects to have a CPU set.


Author

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

Hardware Locality (hwloc)       Version 2.11.0 hwlocality_helper_distribute(3)

hwloc 2.11.0 - Generated Fri Jun 28 07:39:24 CDT 2024
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.