dispenso 1.6.0
A library for task parallelism
Loading...
Searching...
No Matches
dispenso::ThreadGroup Struct Reference

A scheduling group of CPUs for fork-join thread pool assignment. More...

#include <cpu_set.h>

Public Attributes

std::vector< int32_t > cpus
 CPU IDs in this group (sorted)
 
CpuSet affinityMask
 Pre-built CpuSet for binding threads in this group.
 

Detailed Description

A scheduling group of CPUs for fork-join thread pool assignment.

Thread groups are the fundamental scheduling and wake unit. Each group:

  • Contains at most DISPENSO_MAX_GROUP_SIZE threads (configurable)
  • Is L3-coherent (all CPUs share an L3 cache)
  • Never splits an L2 cache group (SMT siblings stay together)
  • Stays within L3 cache boundaries when possible

Groups are built bottom-up from cache topology: L2 atoms are packed into groups within L3 boundaries. On systems without cache topology detection, CPUs are chunked contiguously by maxGroupSize.

See also
CpuSet::buildThreadGroups()

Definition at line 361 of file cpu_set.h.

Member Data Documentation

◆ affinityMask

CpuSet dispenso::ThreadGroup::affinityMask

Pre-built CpuSet for binding threads in this group.

Definition at line 363 of file cpu_set.h.

◆ cpus

std::vector<int32_t> dispenso::ThreadGroup::cpus

CPU IDs in this group (sorted)

Definition at line 362 of file cpu_set.h.


The documentation for this struct was generated from the following file: