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

标签 linux cpu-architecture numa

我在双插槽 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 系统逻辑图.

关于linux - Power8 处理器上有多少个 NUMA 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39442892/

相关文章:

java - 为hadoop启用UseNUMA标志?

c++ - NUMA 感知 Cpp 容器

c++ - 文件夹大小 linux

c++ - 按位非运算哪个更快 : precalculated table or `~`

x86 - 与 CPU 微架构相关的奇怪现象

assembly - 为什么要刷新其他逻辑处理器引起的内存顺序违规的管道?

c - numaif.h : MPOL_LOCAL undeclared for use in mbind

c - 我不能使用 libc,但我必须使用 C 重新分配和分配内存

linux - 使用 awk 修改输出

linux - 设置要在启动时执行的命令+设置每天重启-Ubuntu(关闭)