First, let's check I got the fundamentals right:

As I understand it, NUMA systems are a (asymmetric) network of NUMA nodes, where a NUMA node is usually (but not always) a physical CPU package. In a NUMA system, each node has its own local memory, and the memory of the other nodes are available via a bus. The non-uniformity of the network means that obtaining foreign memory incurs a varying cost depending on locality of the two nodes involved in a memory fetch.

Now, assuming I got that right, here is some output from a real Linux system.

The kernel support NUMA (has the support compiled in at least):

$ grep NUMA /boot/config-`uname -r`

But there is only one NUMA node:

$ numactl -H
available: 1 nodes (0)
node 0 cpus: 0 1 2 3
node 0 size: 15955 MB
node 0 free: 5203 MB
node distances:
node   0 
  0:  10 

Also note that there is only one path down the NUMA bus, from node 0 to node 0 (interestingly with distance 10, not 0). This implies that all memory accesses bear the same cost in terms of NUMA latency at least.

So, since there is only a single NUMA node, this is a regular SMP machine, with no NUMA capability, right? I think so.



Modern x86 CPU architectures (AMD Opteron and later and Intel Nehalem-based Xeon and later) are NUMA capable, but they do not necessarily require to work in NUMA mode.

In your specific case, you have a NUMA capable CPU working as a single node, so no NUMA behavior will be detected.

  • The CPU in the question is a core i7. – Edd Barrett Jun 8 '17 at 8:11
  • 1
    "Core i7" is a rather generic description. However, any currently Corei7-marketed CPU is a single NUMA capable node. In other words, you can totally ignore it's NUMA capability. For reference, my ancient Westmere-based Corei5 also reports a single NUMA node. – shodanshok Jun 8 '17 at 8:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.