silicon atlasTHE HARDWARE REFERENCE
العربية
Reference/Memory & storage
Memory & storage

NUMA & memory placement

A shared address space can contain memory at different distances.

The same load instruction can cost more when its data belongs to another node.
Node

A locality domain.

LIVE EXPERIMENT

Find the bottleneck

Runs on your device
05001,0001,5002,0000.25141632GFLOP/sIntensity (FLOP / byte)
Ideal upper bound400 GFLOP/s
Limiting resourceMemory
Ridge point10 FLOP/B

Low arithmetic intensity hits the memory ceiling. More data reuse can move the workload toward the compute ceiling.

What this model includes

An ideal upper bound with fixed peak compute and bandwidth. Ignores latency, overhead, cache-level traffic, and instruction mix.

FOLLOW THE MECHANISM

What happens inside

1

Locate the owner

In a non-uniform memory access system, processors have different paths to physical memory. Local memory can be reached through a nearby controller; remote memory crosses an interconnect. Coherent shared addressing does not make latency or bandwidth uniform. Chiplet, socket, and cluster arrangements can create topology effects.

2

Place work near its data

Allocation policy, first touch, and thread placement influence where pages live, subject to the OS and configuration. Migration and load balancing can improve one resource while harming locality. Interleaving pages spreads bandwidth for shared workloads; partitioning data can favor local independent work.

PUT IT TO WORK

What this means for your code

Low-level engineer

Inspect CPU and memory topology. Measure local versus remote access and account for huge pages, migration, and affinity.

Software developer

Partition large worker workloads with their data. Global queues and shared writable state can defeat locality on large servers.

GO TO THE SOURCE

Read the actual specifications

These references supply the underlying contracts and implementation details. The diagrams here are simplified teaching models.

Linux · NUMA memoryLinux kernel documentation
Linux · Page tablesLinux kernel documentation

Keep following the connection

Understood the idea? Keep a note of your progress.