numa non uniform memory access

**Non-Uniform Memory Access (NUMA)** is the **dominant memory architecture in massive modern servers and supercomputers where memory banks are physically divided into localized "nodes" attached to specific CPU clusters, meaning a core can access its local RAM much faster and with higher bandwidth than it can access remote RAM bolted to another processor**. **What Is NUMA?** - **Symmetric Multiprocessing (SMP) limits**: In older symmetric servers, 8 CPUs all fought for access to a single, centralized memory controller hub. This front-side bus became a catastrophic bottleneck. - **The Decentralized Solution**: NUMA physically integrates the memory controllers directly into each CPU die. In a 4-socket server motherboard, CPU 1 controls 512GB of RAM, and CPU 2 controls a different 512GB of RAM. The total system sees 1TB of unified memory. - **The "Non-Uniform" Penalty**: If a thread scheduled on CPU 1 wants to read an array stored in CPU 1's local memory banks, it is incredibly fast. If the thread wants to read an array stored in CPU 2's memory banks, the data must be requested, serialized, pushed across a massive, high-latency motherboard inter-socket link (like Intel UPI or AMD Infinity Fabric), and then read. **Why NUMA Matters for Software** - **High-Performance Scaling**: Without NUMA, modern 128-core, multi-socket datacenters could not physically route enough copper wires to supply memory bandwidth to all cores simultaneously. - **NUMA-Aware Programming**: If the operating system randomly migrates an active thread from CPU 1 to CPU 2, that thread is suddenly physically separated from its memory, destroying its latency profile. The OS and the hypervisor MUST explicitly employ "Thread Affinity" (pinning software to a specific core) and "Memory Affinity" (forcing memory allocations to occur exclusively on the local node). - **The Cost of Ignorance**: Software developers writing massive parallel databases (like SQL or Redis) that ignore NUMA topology will randomly thrash memory across inter-socket links, suffering 40-60% performance cliffs compared to perfectly localized arrays. **The Rise of Sub-NUMA Clustering (SNC)** As single monolithic silicon dies grew to 64+ cores, they became so massive that even moving data from the left side of the chip to the right side incurred a massive latency penalty. Modern architectures divide a *single physical chip* into 4 internal "Sub-NUMA Clusters," exposing the physical layout of the silicon die directly to the Linux kernel scheduler. Non-Uniform Memory Access is **the definitive paradigm shift where the physical limitations of motherboard wiring force software developers to finally care about exactly where their data physically sits in the rack**.

Go deeper with CFSGPT

Get AI-powered deep-dives, save terms, and run advanced simulations — free account.

Create Free Account