Во-первых, давайте проверим, что я понял основы:
Насколько я понимаю, системы NUMA представляют собой (асимметричную) сеть NUMA узлы, где узел NUMA обычно (но не всегда) является физическим пакетом ЦП. В системе NUMA каждый узел имеет свою собственную локальную память, а память других узлов доступна через шину. Неоднородность сети означает, что получение внешней памяти требует различных затрат в зависимости от местоположения двух узлов, участвующих в выборке из памяти.
Теперь, если я правильно понял, вот некоторые результаты реальной системы Linux.
Ядро поддерживает NUMA (как минимум, поддержка скомпилирована):
$ grep NUMA /boot/config-`uname -r`
CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
CONFIG_ARCH_WANTS_PROT_NUMA_PROT_NONE=y
CONFIG_ARCH_USES_NUMA_PROT_NONE=y
# CONFIG_NUMA_BALANCING_DEFAULT_ENABLED is not set
CONFIG_NUMA_BALANCING=y
CONFIG_NUMA=y
CONFIG_AMD_NUMA=y
CONFIG_X86_64_ACPI_NUMA=y
CONFIG_NUMA_EMU=y
CONFIG_USE_PERCPU_NUMA_NODE_ID=y
CONFIG_ACPI_NUMA=y
Но есть только один узел NUMA:
$ 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
Также обратите внимание, что по шине NUMA есть только один путь, от узла 0 к узлу 0 (что интересно, с расстоянием 10, а не 0). Это означает, что все обращения к памяти имеют одинаковую стоимость, по крайней мере, с точки зрения задержки NUMA.
Итак, поскольку существует только один узел NUMA, это обычная машина SMP без возможности NUMA, верно? Я думаю так.
Спасибо.
Современные архитектуры ЦП x86 (AMD Opteron и новее и Xeon на базе Intel Nehalem и новее) являются С поддержкой NUMA, но они не обязательно должны работать в режиме NUMA.
В вашем конкретном случае у вас есть ЦП с поддержкой NUMA, работающий как один узел, поэтому нет поведения NUMA будет обнаружен.