What Is Non-Uniform Memory Access (NUMA)?

Last Updated: 2022-08-02
Summary: NUMA, short for Non-Unified Memory Access, is a computer memory design for multiprocessing. Look here for a full introduction to NUMA.


NUMA is a multiprocessing architecture where memory is divided into tight and distant storage, and memory access time depends upon the memory location relative to the processor.

Under NUMA, processors access their local memory faster than non-local memory. NUMA’s benefits are limited to specific workloads, especially on servers where data is typically strongly associated with specific tasks or users.

Non-uniform memory access systems are advanced server platforms with multiple system buses. These platforms can use multiple processors on a single board, and all processors have access to all the memory on the motherboard.

The NUMA architectures logically follow in scaling from an SMP (Symmetric Multiprocessing ) architecture. Compared to SMP, NUMA architecture scales to a higher number of CPUs.

Basic Concept

Modern CPUs run much faster than the main memory they use. In the early stages of computing and data processing, the CPU typically runs slower than its memory. The limiting memory access number is the key to extracting high performance from modern computers.

However, the sharp increase in the operating system’s size and the applications running on the operating system often overwhelms these cache processing improvements. A multiprocessor system without NUMA makes the problem even worse.

NUMA tries to address this issue by providing separate memory for each processor, avoiding a performance impact when multiple processors resolve the same memory.

Besides, NUMA systems include other hardware or software for moving data between memory banks. This reduces the speed of the processors connected to these banks. Therefore, the overall speed increase due to NUMA depends mostly on the nature of the running task.

Cache Coherent NUMA (ccNUMA)

Almost all CPU architectures take advantage of reference locations in memory access with a small amount of high-speed non-shared memory called caching.

ccNUMA adopts inter-processor communication between cache controllers to maintain consistent memory images when multiple caches store the same memory location. As a result, ccNUMA performs poorly when multiple processors try to quickly and continuously access the same memory area.

Supporting NUMA in the operating system tries to reduce the frequency of such access by allocating processors and memory in a NUMA-friendly manner and preventing the scheduling and locking algorithms necessary to make NUMA unfriendly access.

Software Support

Because NUMA greatly influences memory access performance, some software optimization is required to allow scheduling threads and processes to access their memory data.

  • Silicon Graphics IRIX supports the ccNUMA architecture over 1240 CPU and Origin Server Series.
  • Microsoft Windows 7, as well as Windows Server 2008 R2, have increased support for more than 64 logical cores of the NUMA architecture.
  • Java 7 adds support for NUMA-aware memory allocators and garbage collectors.
  • Version 3.13 of the Linux kernel introduced several policies to place processes near memory and handle situations such as using large transparent pages or sharing memory pages between processes. The new sysctl settings allow NUMA balancing to be enabled or disabled and various NUMA memory balancing parameters to be configured.
  • OpenSolaris uses groups to model the NUMA architecture.
  • FreeBSD adds Initial NUMA relevance and policy configuration to version 11.0

Bottom Line!

In short, after going through this page, you will have a better understanding of the definition, basic concept, and work manner of Non-Unified Memory Access. You will also know that NUMA affects memory access performance so some software optimizes to support it.

How useful was this post?

Click on a star to rate it!

Average rating 4.8 / 5. Vote count: 73

No votes so far! Be the first to rate this post.

Previous Article

How To Revert Latest Google Chrome Icon for Mac to Original One? Summary: NUMA, short for Non-Unified Memory Access, is a computer memory design for multiprocessing. Look here for a full introduction...

Next Article

How to Recover Deleted Videos From Mac? Summary: NUMA, short for Non-Unified Memory Access, is a computer memory design for multiprocessing. Look here for a full introduction...

About Bitwar Data Recovery

3 Steps to get back 500+ kinds of deleted, formatted or lost documents, photos, videos, audios, archive files from various data loss scenarios.

Learn More

Hot Articles

    Related Articles