Многоядерность и использование процессора - PullRequest
0 голосов
/ 10 января 2011

У меня есть процессор Intel i3 (двухъядерный с гиперпоточностью)
Обычно я отслеживаю использование моего процессора с помощью гаджета на боковой панели, показывающего каждое использование ядра в отдельной строке от (0 - 3).
, но недавноя заметил, что ядро ​​с номером 0 вообще не используется.
после некоторого поиска я столкнулся с темой, объясняющей числа и идею, что ядра 0, 2 являются реальными ядрами, а 1, 3 являются гиперпоточными ядрами., но в соответствии с этим это означает, что реальное ядро ​​моего процессора никогда не используется, и даже мое другое ядро ​​бесполезно.
и, читая больше, я наткнулся на это multi-core-cpu-single-thread-поведение-not-достижение-100 , которое говорит, что переключение имеет место, но все же это не ответило на вопрос выше, где находится реальное ядро ​​0 и почему используется только 1 ядро.

http://img641.imageshack.us/img641/8837/cpuusage.png

Как вы можете видеть, это нормальное использование процессора, что произошло с ядром 0,2,3, почему они не используются другими программами и почему только 1ядро активно, даже когда запущено много программ.

(ВСЕ процессы используют все ядра, проверены на соответствие)

Ответы [ 2 ]

1 голос
/ 10 января 2011

При гиперпоточности оба логических процессора на одном ядре эквивалентны.Он не является реальным, а второй - гиперпотоковым.Оба имеют одно и то же физическое ядро.Неважно, какой из них используется.Лучше сначала спланировать потоки на разных физических ядрах, и только после того, как все физические ядра будут использованы, используйте 2-е логические процессоры на тех же ядрах, что, по-видимому, именно то, что вы описываете.

0 голосов
/ 10 января 2011

Возможно, потому что не требуется больше вычислительной мощности, требующей вычислительной мощности, и потому что планирование на уровне SIBLING считается более дорогим.То есть процессы - давайте рассмотрим трудоемкие для простоты - будут назначаться разным ядрам, прежде чем «перегружать» ядро ​​(группу из N hw потоков) другой программой.Другими словами, 6-ядерный 4-ниточный станок обычно заполняет 24 потока в порядке 0, 4, 8, 12, 16, 20, 1, 5, 9, 13, 17, 21, 2, 6, 10., 14, 18, 22, 3, 7, 11, 15, 19, 23. (Небольшие отклонения, конечно, возможны из-за «спонтанной» миграции процесса.)used: ваши собственные графики показывают Core 3 и 3) и Core 4 [sic] (это потоки 3 и 4), 1% и 2%.Большинство процессов, которые вы видите в списке процессов, даже не работают, они просто спят.

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