web-dev-qa-db-ja.com

単一のNUMAノードを備えたマシン、実際には通常の(非NUMA)システムですか?

まず、基本が正しいことを確認しましょう。

私が理解しているように、NUMAシステムはNUMAの(非対称)ネットワークですノードここで、NUMAノードは通常(常にではありませんが)物理CPUパッケージです。 NUMAシステムでは、各ノードに独自のローカルメモリがあり、他のノードのメモリはバスを介して利用できます。ネットワークの不均一性は、外部メモリを取得すると、メモリフェッチに関与する2つのノードの場所に応じてさまざまなコストが発生することを意味します。

さて、私がそれを正しく理解したと仮定して、これが実際の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ノードは1つだけです。

$ 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 

また、ノード0からノード0までのNUMAバスのパスは1つだけであることに注意してください(興味深いことに、距離は0ではなく10です)。これは、すべてのメモリアクセスが少なくともNUMAレイテンシに関して同じコストを負担することを意味します。

つまり、NUMAノードは1つしかないので、これはNUMA機能のない通常のSMPマシンですよね?私はそう思う。

ありがとう。

1
Edd Barrett

最新のx86CPUアーキテクチャ(AMDOpteron以降およびIntelNehalemベースのXeon以降)はNUMA対応ですが、必ずしもNUMAで動作する必要はありません。モード。

特定のケースでは、NUMA対応のCPUが単一ノードとして機能しているため、NUMAの動作なしが検出されます。

1
shodanshok