Primeiro, vamos verificar se tenho os fundamentos corretos:
Pelo que entendi, os sistemas NUMA são uma rede (assimétrica) de NUMA nodes , onde um nó NUMA é geralmente (mas nem sempre) um pacote de CPU físico. Em um sistema NUMA, cada nó tem sua própria memória local, e a memória dos outros nós está disponível através de um barramento. A não-uniformidade da rede significa que obter memória externa incorre em um custo variável, dependendo da localização dos dois nós envolvidos em uma busca de memória.
Agora, supondo que eu tenha acertado, aqui estão alguns resultados de um sistema Linux real.
O kernel suporta NUMA (tem o suporte compilado em pelo menos):
$ 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
Mas há apenas um nó 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
Observe também que há apenas um caminho pelo barramento NUMA, do nó 0 ao nó 0 (curiosamente com distância 10, não 0). Isto implica que todos os acessos à memória têm o mesmo custo em termos de latência NUMA, pelo menos.
Portanto, como existe apenas um único nó NUMA, essa é uma máquina SMP comum, sem capacidade NUMA, certo? Eu acho que sim.
Obrigado.