← 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.

The problem

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.

With numaperf

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

01
topo

Discover nodes and the NIC→node map at startup.

02
affinity

Pin the hot-path thread to the NIC-local node with a RAII ScopedPin.

03
mem + io

Bind the working set and packet buffers to that node; prefault to lock placement in.

04
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.