← Use cases · HFT
Low-latency trading and market data
Tail latency, not median, is the SLO. numaperf removes NUMA variance from the hot path with strict pinning and placement.
In a trading or market-data path, median latency looks fine while p99 wanders and p99.9 looks like noise. The usual culprit — after the team has blamed the network — is cross-node memory access: a hot buffer that first-touch placed on the wrong node, or a worker the runtime migrated across sockets under load.
Pin the hot-path thread to a node with ScopedPin, bind its working set to the same node with MemPolicy::Bind and Prefault::Touch, and allocate NIC buffers on the NIC-local node. The variance from remote access disappears because the access is no longer remote.
How it flows
topo Discover nodes and the NIC→node map at startup.
affinity Pin the hot-path thread to the NIC-local node with a RAII ScopedPin.
mem + io Bind the working set and packet buffers to that node; prefault to lock placement in.
perf Watch locality ratios so a regression surfaces as a number, not a mystery p99.
What you get
- Cross-node access removed from the latency-critical path
- Tail latency stops depending on which core the OS picked
- NIC buffers on the NIC-local node — no cross-node copy
Try it on your workload
cargo add numaperf, then follow the quickstart. See the full feature set or read how it works.