Как мне найти информацию о параллельной архитектуре моего процессора? - PullRequest
5 голосов
/ 26 ноября 2010

Я - процессор Intel® Core ™ ™ Duo T6600 @ 2,20 ГГц (как мне сказал cat /proc/cpuinfo), но мне нужно углубиться в максимально возможную глубину. архитектура для работы над параллельным программированием (вероятно, с использованием pthreads). Есть указатели?

Ответы [ 3 ]

10 голосов
/ 26 ноября 2010

Файловая система sys знает all об этом:

$ ls /sys/devices/system/cpu 
cpu0  cpu2  cpuidle  possible  sched_mc_power_savings
cpu1  cpu3  online   present

$ ls /sys/devices/system/cpu/cpu0/topology/
core_id        core_siblings_list   thread_siblings
core_siblings  physical_package_id  thread_siblings_list

Вот документация

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

Например - Q: с какими процессорами cpu0 делится своим кэшем L2?

$ cat /sys/devices/system/cpu/cpu0/cache/index2/{type,level,shared_cpu_list}
Unified
2
0-1

A: Он разделяет унифицированный кеш L2 с процессором cpu1 (и самим собой).

Другой пример: Q: какие процессоры находятся в том же физическом пакете, что и cpu0 (на более крупной машине):

cat /sys/devices/system/cpu/cpu0/topology/core_siblings
00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000055

A: ядра 0, 2, 4 и 6. (взято из битовой комбинации выше, lsb = cpu0)


не во всех системах linux есть файловая система sys, и она не всегда находится в корне. (возможно в proc / sys?). форма thread_siblings_list не всегда доступна, но есть нить thread_siblings (битовый шаблон).

2 голосов
/ 03 октября 2012

Я нашел lstopo проекта hwloc весьма полезным. Это даст вам графический вывод (на основе информации, найденной в /proc и /sys, как описал Алекс Браун) топологии вашей системы (см. их веб-страницу для примера). Из графического вывод вы можете легко увидеть

  • при наличии многопоточных сердечников
  • которым соответствуют номера процессоров - это разные гиперпотоки на одном физическом ядре
  • сколько процессорных сокетов используется
  • какие ядра разделяют кэш L3
  • если основная память является общей для сокетов ЦП или если вы работаете в системе NUMA

и т.д.

Если вам нужен программный доступ к этой информации, есть документация о том, как hwloc можно использовать в качестве библиотеки.

0 голосов
/ 29 ноября 2010

Чтобы получить наименьшую информацию о процессоре, системный инженер может использовать их эквивалент CPUZ и перейти на самые низкие уровни, если это разрешено законом, для домашнего или офисного адреса, где процессор должен быть установлен и использован. Инженеры и разработчики программного обеспечения обычно не имеют права знать этот уровень детализации, но я могу вам сказать, что архитектура может относиться к тому типу, где процессор порождает или создает виртуальный второй процессор, дающий почти эквивалентный x1.75 эквивалентный уровень обработки, или существует несколько физических ядер на одном кристалле с использованием технологий и методов управления в качестве усовершенствований предыдущих реализаций проекта. Процессор Core имеет интерфейс для использования системными программистами, разработчиками приложений, и этот режим доступа будет ожидаемым для Intel, подробности доступны у них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...