numaperf-topo 0.1.0

NUMA topology discovery and CPU locality mapping
Documentation

numaperf-topo

Crates.io Documentation

NUMA topology discovery and CPU locality mapping.

Overview

numaperf-topo discovers your system's NUMA topology at runtime by reading from Linux sysfs. It provides information about NUMA nodes, their CPUs, and inter-node distances.

Usage

[dependencies]
numaperf-topo = "0.1"

Most users should use the numaperf facade crate instead.

Example

use numaperf_topo::Topology;

fn main() -> Result<(), numaperf_core::NumaError> {
    let topo = Topology::discover()?;

    println!("NUMA nodes: {}", topo.node_count());

    for node in topo.numa_nodes() {
        println!("Node {}: {} CPUs", node.id(), node.cpu_count());

        // Check distance to other nodes
        for other in topo.numa_nodes() {
            if let Some(dist) = node.distance_to(other.id()) {
                println!("  Distance to {}: {}", other.id(), dist);
            }
        }
    }

    Ok(())
}

Features

  • Topology discovery from /sys/devices/system/node/
  • Per-node information: CPU count, CPU set, memory info
  • Distance matrix: Inter-node access latencies
  • CPU-to-node mapping: Find which node owns a CPU

Types

  • Topology - System NUMA topology
  • NumaNode - Information about a single NUMA node

Part of numaperf

This crate is part of the numaperf workspace.

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.