142 std::size_t worker_b)
const -> double;
155 std::size_t max_count)
const
156 -> std::vector<std::size_t>;
190 std::
size_t worker_b) const ->
std::
size_t;
Tracks cooperation patterns between workers for locality-aware stealing.
auto operator=(const work_affinity_tracker &) -> work_affinity_tracker &=delete
auto get_affinity(std::size_t worker_a, std::size_t worker_b) const -> double
Get the affinity score between two workers.
work_affinity_tracker()=default
Default constructor - creates an empty tracker.
auto worker_count() const -> std::size_t
Get the number of workers being tracked.
static constexpr std::size_t MAX_TRACKED_WORKERS
Maximum number of workers tracked for affinity.
auto history_size() const -> std::size_t
Get the configured history size.
std::size_t history_size_
void record_cooperation(std::size_t thief_id, std::size_t victim_id)
Record a cooperation event between two workers.
std::atomic< std::uint64_t > total_cooperations_
std::size_t tracked_count_
work_affinity_tracker(const work_affinity_tracker &)=delete
std::size_t worker_count_
std::unique_ptr< std::atomic< std::uint64_t >[]> cooperation_matrix_
auto get_matrix_index(std::size_t worker_a, std::size_t worker_b) const -> std::size_t
Get the matrix index for a worker pair.
~work_affinity_tracker()=default
Destructor.
static auto normalize_pair(std::size_t a, std::size_t b) -> std::pair< std::size_t, std::size_t >
Normalize worker IDs to ensure a < b.
auto operator=(work_affinity_tracker &&other) noexcept -> work_affinity_tracker &
Move assignment operator.
void reset()
Reset all affinity data.
auto total_cooperations() const -> std::uint64_t
Get total cooperation events recorded.
auto get_preferred_victims(std::size_t worker_id, std::size_t max_count) const -> std::vector< std::size_t >
Get preferred victims for a worker, sorted by affinity.
Core threading foundation of the thread system library.