many_cpus 2.0.0

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::SystemHardware;

let threads = SystemHardware::current()
    .processors()
    .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.