Power8 处理器上有多少个 NUMA 节点

How many NUMA nodes on a Power8 processor

我在一台双插槽 Power8 机器上使用 Ubuntu 15.04,每个插槽有 10 个内核。 "numactl -H" 输出:

available: 4 nodes (0-3)
node 0 cpus: 0 8 16 24 32
node 0 size: 30359 MB
node 0 free: 26501 MB
node 1 cpus: 40 48 56 64 72
node 1 size: 0 MB
node 1 free: 0 MB
node 2 cpus: 80 88 96 104 112
node 2 size: 30425 MB
node 2 free: 27884 MB
node 3 cpus: 120 128 136 144 152
node 3 size: 0 MB
node 3 free: 0 MB
node distances:
node   0   1   2   3 
  0:  10  20  40  40 
  1:  20  10  40  40 
  2:  40  40  10  20 
  3:  40  40  20  10 

问题是,每个Power8处理器上有两个NUMA节点吗?不知道为什么一个人有记忆而另一个人什么都没有。我找不到关于此的任何文件。如有任何信息,我们将不胜感激。

进一步的问题,如果一个套接字上有两个节点,那么它们的最后一级缓存是像 NUMA 节点一样共享(数据可以驻留在所有缓存中)还是在同一个套接字上(只有一个副本可以存在)。

横向扩展 POWER8 系统使用双芯片模块 (DCM)。顾名思义,DCM 将两个多核芯片与一些附加逻辑封装在同一个物理封装中。两个芯片之间有一个封装内高速缓存一致的 32 GBps 互连(误称为 SMP 总线),还有两条通往外部内存缓冲区的独立路径,每个芯片一个。因此,每个插槽本身就是一个双节点 NUMA 系统,类似于多模块 AMD Opteron。在您的情况下,给定插槽的所有本地内存可能仅安装在属于该插槽的第一个芯片的插槽中,因此第二个 NUMA 域显示为 0 MB。

封装内(X 总线)和封装间(A 总线)互连都是缓存一致的,即 L3 缓存保持同步。在多核芯片中,每个核心直接连接到 L3 缓存区域,并通过芯片互连访问同一芯片的所有其他 L3 缓存,即 NUCA(非统一缓存架构)。

有关详细信息,请参阅 this Redpaper 中的 S824 系统逻辑图。