Skip to main content

resolve_cpu_affinity

Function resolve_cpu_affinity 

Source
pub fn resolve_cpu_affinity(
    policy: CpuAffinityPolicy,
    inputs: &[CpuAffinityInput],
    default_domain: CpuDomainId,
) -> Result<CpuAffinitySelection, CpuAffinityResolutionError>
Expand description

Resolve a CPU execution domain from input affinity metadata.

Unknown affinities and zero-byte inputs do not contribute to dominant-byte scoring. When no input contributes, default_domain is selected. Equal positive totals are resolved in favor of the smallest CpuDomainId. The input slice is only read; the resolver never retags or rehomes an input.

Use resolve_cpu_affinity_with_override when an operation-local explicit placement has already been selected.

§Examples

use tenferro_cpu::{resolve_cpu_affinity, CpuAffinityInput, CpuAffinityPolicy};
use tenferro_tensor::CpuDomainId;

let inputs = [
    CpuAffinityInput { domain: Some(CpuDomainId::new(8)), logical_bytes: 6 },
    CpuAffinityInput { domain: Some(CpuDomainId::new(3)), logical_bytes: 2 },
];
let selected = resolve_cpu_affinity(
    CpuAffinityPolicy::DominantInputBytes,
    &inputs,
    CpuDomainId::new(1),
)?;
assert_eq!(selected.domain, CpuDomainId::new(8));

§Errors

Returns CpuAffinityResolutionError::LogicalByteCountOverflow when one domain’s logical byte total cannot be represented by usize, or CpuAffinityResolutionError::MultipleKnownDomains when strict policy sees more than one known input domain.