То же физическое ядро ​​другой узел NUMA

Выполняя шаги по определению того, какие логические ядра совместно используют одно и то же физическое ядро ​​на моем процессоре AMD Opteron™ 6234, я обнаружил, что 2 логических ядра, совместно использующих одно и то же физическое ядро, не находятся в одном узле NUMA.

Мои шаги заключались в том, чтобы сделать lscpu, чтобы получить ядро, связанное с узлами NUMA:

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                24
On-line CPU(s) list:   0-23
Thread(s) per core:    2
Core(s) per socket:    6
Socket(s):             2
NUMA node(s):          4
Vendor ID:             AuthenticAMD
CPU family:            21
Model:                 1
Model name:            AMD Opteron(TM) Processor 6234
Stepping:              2
CPU MHz:               1400.000
CPU max MHz:           2400.0000
CPU min MHz:           1400.0000
BogoMIPS:              4799.98
Virtualization:        AMD-V
L1d cache:             16K
L1i cache:             64K
L2 cache:              2048K
L3 cache:              6144K
NUMA node0 CPU(s):     0-5
NUMA node1 CPU(s):     6-11
NUMA node2 CPU(s):     12-17
NUMA node3 CPU(s):     18-23

Затем cat /proc/cpuinfo | grep "core id" для того, чтобы сгруппировать ядра:

core id         : 0
core id         : 1
core id         : 2
core id         : 3
core id         : 4
core id         : 5
core id         : 0
core id         : 1
core id         : 2
core id         : 3
core id         : 4
core id         : 5
core id         : 0
core id         : 1
core id         : 2
core id         : 3
core id         : 4
core id         : 5
core id         : 0
core id         : 1
core id         : 2
core id         : 3
core id         : 4
core id         : 5

И, наконец, cat /proc/cpuinfo | grep "physical id" для того, чтобы ядра имели один и тот же идентификатор ядра и один и тот же физический процессор:

physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 0
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 1
physical id     : 1

Из этого я делаю вывод, что ядра 0 и 6 используют одно и то же физическое ядро, однако ядро ​​0 находится в узле NUMA 0, а ядро ​​6 — в узле NUMA 1.

Я нахожу это очень тревожным, возможно ли это?

Спасибо заранее за вашу помощь.


person Lili_marston    schedule 31.01.2018    source источник


Ответы (1)


Для Opteron 6234 в каждом пакете есть 2 кристалла, каждый из которых является узлом NUMA, и каждый кристалл имеет 6 ядер. Нет SMT (гиперпоточности), поэтому на ядро ​​приходится только один ЦП.

Что вы ожидаете, так это:

 CPU_number = package:die_in_package:core_in_die:CPU_in_core, NUMA node
 0 = 0:0:0:0, NUMA node 0
 1 = 0:0:1:0, NUMA node 0
 2 = 0:0:2:0, NUMA node 0
 3 = 0:0:3:0, NUMA node 0
 4 = 0:0:4:0, NUMA node 0
 5 = 0:0:5:0, NUMA node 0
 6 = 0:1:0:0, NUMA node 1
 7 = 0:1:1:0, NUMA node 1
 8 = 0:1:2:0, NUMA node 1
 9 = 0:1:3:0, NUMA node 1
10 = 0:1:4:0, NUMA node 1
11 = 0:1:5:0, NUMA node 1
12 = 1:0:0:0, NUMA node 1
13 = 1:0:1:0, NUMA node 2
14 = 1:0:2:0, NUMA node 2
15 = 1:0:3:0, NUMA node 2
16 = 1:0:4:0, NUMA node 2
17 = 1:0:5:0, NUMA node 2
18 = 1:1:0:0, NUMA node 3
19 = 1:1:1:0, NUMA node 3
20 = 1:1:2:0, NUMA node 3
21 = 1:1:3:0, NUMA node 3
22 = 1:1:4:0, NUMA node 3
24 = 1:1:5:0, NUMA node 3

Теперь посмотрите на ЦП номер 0 и ЦП номер 6. У них обоих один и тот же номер пакета, один и тот же узел NUMA и один и тот же «ЦП в кристалле»; но у них разные номера штампов. Ни в одной информации, которую вы получили, не упоминаются «числа кубиков», и поэтому вы запутались.

person Brendan    schedule 31.01.2018
comment
Большое спасибо, Брендан. Это был тот ответ, который мне был нужен. Я провел некоторые исследования из вашего ответа, и что также действительно помогло мне перепроверить информацию, так это команда likwid-topology -g, также представленная в этот пост. - person Lili_marston; 01.02.2018