Закачка ЦП в Linux (с гиперпотоком)

Мне любопытно, что заказ ЦП в Linux. Скажем, я привязываю поток к cpu0, а другой - к cpu1 в гиперпотоковой системе, они оба будут на одном физическом ядре. Учитывая Core i7 920 с четырьмя ядрами и гиперпотоком, вывод /proc/cpuinfo заставил меня думать, что cpu0 и cpu1 являются разными физическими ядрами, а cpu0 и cpu4 находятся на одном физическом ядре.

Спасибо.

Ответ 1

Физический процессор/сокет отображается как physical id.
Физическое ядро ​​указано как core id.
Запись процессора из-за hypherthreading получит свой собственный processor, но поделится core id и physical id с другим.

Обратите внимание, что каждый физический процессор (physical id) может иметь несколько ядер (core id), которые могут быть далее разбиты на дополнительный логический cpus путем гиперпотока. Логический cpus в целом упорядочен processor id.

Здесь приводится подробное объяснение с примерами: archive.richweb.com/cpu_info через web.archive.org

Ответ 2

Вы можете использовать likwid-topology -g для получения графической топологии процессора. Он показывает каждый основной процессор cpu вместе с ядром sibling.

Ответ 3

См. указатель, указанный в этой ссылке. Информация находится в /proc/cpuinfo в отношении физических процессоров, ядер и гиперпотоков, но вам нужно сопоставить информацию из нескольких записей в этом файле, чтобы определить, какие из них группируются.