Понимание вывода lscpu - PullRequest
       12

Понимание вывода lscpu

0 голосов
/ 13 сентября 2018

Вы можете видеть вывод команды lscpu -

jack@042:~$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                56
On-line CPU(s) list:   0-55
Thread(s) per core:    2
Core(s) per socket:    14
Socket(s):             2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 79
Model name:            Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz
Stepping:              1
CPU MHz:               2600.000
CPU max MHz:           2600.0000
CPU min MHz:           1200.0000
BogoMIPS:              5201.37
Virtualization:        VT-x
Hypervisor vendor:     vertical
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              35840K
NUMA node0 CPU(s):     0-13,28-41
NUMA node1 CPU(s):     14-27,42-55

Я вижу, что есть 2 сокеты (которые похожи на процессор ??), и внутри каждого из сокетов у нас есть14 ядер.Итак, всего 2x14=28 физических ядер.Обычно ЦП может содержать несколько ядер, поэтому количество ЦП никогда не может быть меньше количества ядер.Но, как показано в выводе CPUs(s): 56, это меня смущает.

Я вижу, что потоков на ядро: 2, поэтому эти 28 ядер могут вести себя как 2x28=56 логических ядер.

Вопрос 1: Что означает CPUs(s): 56?Обозначает ли CPU(s) количество виртуальных / логических ядер, поскольку это не может быть физическое ядро ​​по крайней мере?

Вопрос 2: Что означает этот узел NUMA?Он представляет собой сокет?

Ответы [ 3 ]

0 голосов
/ 13 сентября 2018

потоков на ядро: A аппаратный поток - достаточный набор регистров для представления текущего состояния одного программного потока.Ядро с двумя аппаратными потоками может выполнять инструкции от имени двух разных программных потоков без дополнительных затрат на переключение контекста между ними.Степень реального параллелизма, которого он может достичь, будет зависеть от того, что делают потоки, а также от марки и модели процессора.

Число ядер на сокет: A core это то, что мы традиционно считаем процессором или процессором, а сокет является интерфейсом между одним или несколькими ядрами и системой памяти.Сокет также является физическим соединением между чипом или многочиповым модулем и основной платой.В дополнение к ядрам, чип / модуль обычно будет иметь по крайней мере два уровня кэш памяти .Каждое ядро, как правило, будет иметь свой собственный кэш L1 , и тогда все ядра в чипе / модуле будут иметь общий доступ (то есть бороться за) доступ по крайней мере к одному кэшу более высокого уровня и к основномупамять.

Сокет (ы) : см. выше.Большие системы (например, стоечные серверы) часто имеют более одного.Персональные компьютеры, реже.

NUMA ...: Я не могу вам много рассказать о NUMA , за исключением того, что я говорю о связи между потоками, работающими на разных узлах NUMAработает иначе, чем обмен данными между потоками, работающими на одном и том же узле, и стоит дороже.

0 голосов
/ 13 сентября 2018

( Скопировано по запросу ОП.)

«CPU (s): 56» представляет количество логических ядер, которое равно «Thread (s) на ядро» × «Core (s) на сокет» × «Socket (s)»). Один сокет - это один физический пакет ЦП (который занимает один сокет на материнской плате); каждый сокет содержит несколько физических ядер, и каждое ядро ​​может запускать один или несколько потоков. В вашем случае у вас есть два сокета, каждый из которых содержит 14-ядерный процессор Xeon E5-2690 v4, и, поскольку он поддерживает гиперпоточность с двумя потоками, каждое ядро ​​может запускать два потока.

«Узел NUMA» представляет архитектуру памяти; «NUMA» означает «неоднородная архитектура памяти» . В вашей системе каждый сокет подключен к определенным слотам DIMM, и каждый физический пакет ЦП содержит контроллер памяти, который обрабатывает часть общего ОЗУ. В результате не вся физическая память одинаково доступна из всех процессоров: один физический процессор может напрямую обращаться к памяти, которой он управляет, но для доступа к остальной памяти он должен пройти через другой физический процессор. В вашей системе логические ядра 0–13 и 28–41 находятся в одном узле NUMA, остальные - в другом. Так что да, один узел NUMA равен одному сокету, по крайней мере, в типичных системах Xeon с несколькими сокетами.

0 голосов
/ 13 сентября 2018

NUMA означает неравномерный доступ к памяти. Ценность узлов NUMA связана с производительностью с точки зрения доступа к памяти, и она не участвует в вычислении количества имеющихся у вас процессоров.

Расчет 56 процессоров, которые вы получаете, основан на

CPU's = number of sockets x number of cores per socket x number of threads per core

Здесь 2 потока на ядро ​​указывают, что гиперпоточность включена.

Итак, у вас нет 56 физических процессоров, а есть комбинация сокетов, ядер и гиперпоточности. Суть в том, что вы можете запускать 56 потоков параллельно. Вы можете думать, что сокеты эквивалентны физическому процессору.

- отредактировано на основе превосходного комментария Маргарет Блум.

...