Advanced Topic 42 of 51 Concurrency & Parallelism
NUMA
Memory architecture with non-uniform access times.
How it works
Non-uniform memory access describes multiprocessor systems where each CPU socket has its own local memory, and accessing memory attached to another socket is slower, because it travels over an interconnect. The operating system tries to allocate memory on the node where the thread runs, first-touch policy, and schedulers try to keep threads near their data. Programs can control placement with affinity, numactl, memory policies and NUMA-aware allocators.
Where it is used
Large servers, databases, in-memory caches, high-performance computing and virtualization hosts must consider NUMA to achieve full memory bandwidth and low latency.
Common pitfall
Remote accesses can be 1.5 to 3 times slower and congest the interconnect. A thread that initializes data on one node and then migrates to another pays remote costs. Interleaving memory spreads load but loses locality. Data structures shared by all threads become bottlenecks. Pin threads, partition data per node, allocate memory where it will be used and measure with tools such as numastat and perf.
Where it fits in the course
NUMA is topic 42 of 51 in Concurrency & Parallelism, rated Advanced. It follows False Sharing. The next topic is Parallel Graph Algorithms.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Concurrency & Parallelism quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Concurrency & Parallelism quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is NUMA?
Where do people use NUMA?
What is the most common mistake with NUMA?
What should I learn before this topic?
How can I practice it?
Is NUMA hard to learn?
How long does it take to learn NUMA?
Which topics are related to NUMA?
What should I study after NUMA?
Related topics
- False Sharing (Concurrency & Parallelism)
- Parallel Graph Algorithms (Concurrency & Parallelism)
- Load Balancing in Parallel Programs (Concurrency & Parallelism)
- Concurrency Testing (Concurrency & Parallelism)