many_cpus 1.1.2

Efficiently schedule work and inspect the hardware environment on many-processor systems
Documentation

Efficiently schedule work and inspect the hardware environment on many-processor systems.

On systems with 100+ logical processors, taking direct control over work placement can yield superior performance by ensuring data locality and avoiding expensive cross-processor transfers.

use many_cpus::ProcessorSet;

let threads = ProcessorSet::default().spawn_threads(|processor| {
    println!("Spawned thread on processor {}", processor.id());

    // In a real service, you would start some work handler here, e.g. to read
    // and process messages from a channel or to spawn a web handler.
});

See also

More details in the package documentation.

This is part of the Folo project that provides mechanisms for high-performance hardware-aware programming in Rust.