2010-06-10 3 views
11

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

Спасибо.

ответ

18

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

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

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

+0

Это неправильная информация. «Физический идентификатор» - это сокет. У него есть компьютер с одним сокетом с четырехъядерным процессором i7 с гиперпотоком. Все его ядра должны иметь «физический идентификатор» 0. «core id» относится к физическим ядрам, и у него должно быть 0-3 из них. Логические ядра определяются как «процессор» и должны быть пронумерованы 0-7. ... В моей системе процессоры 0 и 4 используют один и тот же идентификатор ядра, процессоры 1 и 5 используют один и тот же идентификатор ядра и т. Д. Просто убедитесь, что вы не связываете два процесса с одним и тем же «ядром», если вы действительно не хотите к. Таким образом, процессоры 0 и 4 являются логическим процессором (гиперпотоком) на одном ядре. – bobpaul

+0

@bobpaul, спасибо ... исправил это. – Stephen

+0

Вы можете использовать 'egrep '((id | processo). *: |^* $)"/Proc/cpuinfo', чтобы получить только соответствующую информацию из '/ proc/cpuinfo' –

-1

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

1

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

Смежные вопросы