Что такое парковка ядер процессора

Обновлено: 06.07.2024

Здравствуй, хабра-человек.
Как известно, Microsoft очень хорошо потрудилась над своим последним детищем по имени Windows 7 и внесла много различных нововведений, об одном из которых я и хочу рассказать. Особенно актуально, я думаю, это будет для владельцев ноутбуков и нетбуков, но и пользователи настольных систем так же могут получить профит.
Как известно, самое большое новшество в «семерке» (после GUI) — это переработанная подсистема ACPI. Тут и нормальная поддержка многоядерных систем, и управление питанием устройств, мониторинга аппаратных средств, да и много чего еще, но одна очень интересная возможность остается за кадром — речь идет об энергопотреблении и управлении ядрами многоядерных/многопроцессорных систем.

Windows 7 позволяет управлять электропитанием процессоров, а так же назначать политики активности/простоя ядер.
При работе на многоядерных процессорах производится постоянная ротация потоков между ядрами и система переносит поток с более загруженных на менее загруженные ядра, что обеспечивает равномерную загрузку всех ядер, но и не менее равномерное энергопотребление, приводит к потере производительности и повышению энергопотребления, а это сказывается в первую очередь на сроке работы от аккумулятора. Сегодня я попытаюсь «восстановить справедливость» штатными средствами ОС.

В Windows 7 и Windows 2008 R2, была реализована функция «Processor performance core parking» или по нашему — «Система парковки ядра», которая оставляет выполнение процесса на том ядре, на котором он начался, до полного его завершения. Такой подход позволяет получить более динамичную систему и значительно снизить потребление энергии.
В отличии от штатного режима работы, когда процессы постоянно переносятся с одного ядра на другое, равномерно загружая ЦП, Система парковки позволяет подключать ядра по мере необходимости, стараясь сложить все задачи на минимальное количество ядер (в идеале на одно).

Пример: На четырех-ядерном процессоре в период простоя будет использоваться только одно ядро, остальные будут запаркованы и отключены, а в период нагрузки будут подключены остальные ядра.

И так, как же добиться такой фичи?

Для начала в реестр необходимо добавить следующие ключи
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\0cc5b647-c1df-4637-891a-dec35c318583]
"Attributes"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\3b04d4fd-1cc7-4f23-ab1c-d1337819c4bb]
"Attributes"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\5d76a2ca-e8c0-402f-a133-2158492d58ad]
"Attributes"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\a55612aa-f624-42c6-a443-7397d064c04f]
"Attributes"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\ea062031-0e34-4ff1-9b6d-eb1059334028]
"Attributes"=dword:00000000

После этого идем в

Панель управления -> Электропитание -> Настройка плана электропитания -> Изменить дополнительные параметры питания -> Управление питанием процессора
  • Минимальное число ядер в состоянии простоя (Processor performance core parking min cores) — Установить 25% для четырех ядерного процессора (одно ядро) — или 50% для двух ядерного процессора.
  • Разрешить состояния снижения питания (Allow Throttle States) – Включить.
  • Отключение простоя процессора (Processor idle disable) — Включить состояние простоя.
  • Переопределение ядра приостановки ядра производительности процессора (Processor performance core parking core override) – Отключено.
  • Максимальное число ядер в состоянии простоя (Processor performance core parking max cores) — Установить 100% (использовать все ядра)

После применения новых параметров можно смело идти в «мониторинг ресурсов» и любоваться тем, что большая часть ядер отключена


Вот собственно и все. Мы получили политику использования ядер «пока нам хватает одного ядра (или сколько вы там укажите) — используем одно ядро», экономим батарейку, а еще и система стала более отзывчивой.

Доброго времени!

Долго думал, стоит ли публиковать сегодняшнюю статью, т.к. вопрос довольно спорный (и результат после настройки у всех может быть разным, в зависимости от оборудования и ПО). И всё же, попрошу к статье отнестись критически и как к "экспериментальной".

Итак, ближе к теме.

К тому же функция парковки ядер позволяет процессору (при определенной нагрузке) переносить все задачи на одно ядро, а остальные переводить в режим ожидания (т.е. работать будет фактически только одно ядро). Естественно, это снижает общую производительность (правда, делает систему более отзывчивой, но незначительно). Отмечу, что Windows к тому же не совсем корректно работает с парковой ядер на процессорах Intel (по крайней мере Windows 7).

Примечание : в первую очередь эта тема касается многоядерных процессоров от Intel (на AMD, честно говоря, адекватной статистики не имею. Но попробовать можно. ).

Как настроить тонко электропитание процессора

На скриншоте ниже: в левой части приведена общая скорость до оптимизации настроек; справа — после. Даже невооруженным глазом видно, что в тестах ЦП начинает работать быстрее (что положительно сказывается и в реальных задачах, тех же играх, например).

Разница в производительности

Разница в производительности

Примечание : рекомендую вам запустить тест в WinRAR сначала до оптимизации настроек (и запомнить общую скорость), и затем провести тест после оптимизации. Далее просто сравнить эти числа, в ряде случаев удается выжать из ЦП еще 10-20%!

CPU-Z — 4 Cores (4 ядра, 8 потоков)

1) Итак, начать нужно с настройки реестра.

Тут дело в том, что Windows по умолчанию скрывает часть настроек электропитания. Чтобы их открыть для редактирования, необходимо внести определенные изменения в реестр. Проще всего это сделать с помощью уже готового файла настроек, который нужно просто запустить и согласиться с добавлением параметров в системный реестр.

Редактор реестра — настройки успешно внесены в реестр

Редактор реестра — настройки успешно внесены в реестр

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\0cc5b647-c1df-4637-891a-dec35c318583]
"Attributes"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\3b04d4fd-1cc7-4f23-ab1c-d1337819c4bb]
"Attributes"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\5d76a2ca-e8c0-402f-a133-2158492d58ad]
"Attributes"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\a55612aa-f624-42c6-a443-7397d064c04f]
"Attributes"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\ea062031-0e34-4ff1-9b6d-eb1059334028]
"Attributes"=dword:00000000

2) Настройка схемы электропитания

Настройка текущей схемы электропитания

Далее нужно открыть дополнительные настройки питания.

Изменить дополнительные параметры питания

Изменить дополнительные параметры питания

  1. минимальное число ядер в состоянии простоя : рекомендуется выставить значение в 99% (почему-то если выставить 100% — Windows часто отправляет одно ядро "отдыхать");
  2. разрешить состояние снижения питания : переведите в режим выкл. (не дает процессору экономить энергию);
  3. отключение простоя процессора : переведите режим в откл.;
  4. минимальное состояние процессора : 100% (незначительно ускоряет работу ЦП (кстати, в некоторых случаях позволяет уменьшить писк от дросселей )) .
  5. политика охлаждения системы : активная (более эффективно охлаждает ЦП);
  6. максимальное состояние процессора : 100% (очень сильно влияет на производительность! Обязательно выставите на 100%);
  7. максимальное число ядер в состоянии простоя : 100% (противоречивая опция. Если выставить что-то отличное от 100% — то грузятся почему-то не все ядра, несмотря на то что активны все. ).

Дополнительные параметры электропитания

Сохраните настройки и перезагрузите компьютер!

3) Еще раз о режиме питания (касается в первую очередь ноутбуков)

После перезагрузки компьютера (ноутбука) — обратите внимание на режим питания (кликните по батарейке в трее). Выставите производительность на 100%!

Макс. производительность

Кроме этого, обратите внимание на центры управления ноутбуком, которые могут идти в комплекте к вашим драйверам (например, такие есть у устройств от Lenovo, Sony и пр.). В них также устройство нужно перевести в режим высокой производительности.

Питание ноутбука // менеджер ноутбука

4) Тестирование быстродействия

Тестирование — WinRAR

Тестирование — WinRAR / Кликабельно

Диспетчер задач — производительность

Диспетчер задач — производительность

В результате у вас будет не один график, а несколько, в зависимости от количества ядер (потоков).

Все ядра загружены

Все ядра загружены

При нагрузке

Для более показательного теста работы ЦП рекомендую воспользоваться утилитой AIDA64 (ссылку на инструкцию привожу ниже).

PS

В рамках этой статьи не могу не порекомендовать еще одну статью на похожую тему. Она касается в первую очередь ноутбуков (т.к. в ряде случаев у них в настройках по умолчанию отключен Turbo Boost, в следствии чего устройство работает медленнее, чем потенциально могло бы. ).

То есть зачем работать 4 ядрам на 50%, если могут работать 2 ядра на 100%, это если грубо говоря.

Примерно как-то так работает Core Parking





Чтобы в настройках Электропитания появилось управление парковкой ядер (Core Parking), то нужно внести некоторые параметры в реестр. После этого появятся такие настройки:

Настройки парковки ядер (будут доступны после внесения правок в реестр)





Но что именно нужно внести в реестр и как вообще это все настроить? Я бы написал, но вряд ли у меня получится лучше, чем написано про Core Parking здесь:

Core parking index

Ползунок можно найти в программе CPU Core Parking Manager:


Frequency scaling index

Вот сам ползунок:


Внешний вид ParkControl и описание





Изменение рабочей частоты процессора штатными средствами Windows

Да, есть такие настройки. Работают, если в биосе не отключено. Позволяет изменить рабочую частоту процессора прямо в Windows, или задать минимальное состояние и максимальное, здесь имеется ввиду частота.

Итак, как попасть в эти настройки? Зажимаете кнопки Win + R, появится окошко Выполнить, вставляете одну из этих команд:


Нажали ОК. Далее выбираете Настройка перехода в спящий режим:


Потом нажимаете Изменить дополнительные параметры питания:


Появится окошко Электропитание. Здесь в процентах можно задать минимальное и максимальное состояние процессора:



Некоторые уже наверное слышали, что одним из источников фризов в Battlefield 4 (и не только в этой игре) является технология от Интел «Парковка ядер». Из за того что в Windows 7 эта технология работает, скажем так — не лучшим образом. Она снижает производительность процессора.

Есть на просторах интернета, такая программа как UnparkCPU, и решить проблему падения производительности многие пытаются именно с помощью её. И в результате её использования многие, возможно видели положительный результат, в производительности вашего ПК. Но знаете ли Вы, что UnparkCPU не совсем корректно реализует отключение технологии «Парковка ядер»?

Хотите, что бы производительность вашего компьютера, процессора, стала ещё выше?

Как проверить быстро, простым способом производительность Вашего ЦП в любом из двух режимов его работы? Первый режим работы ЦП этот будет режим «по умолчанию», то есть режим, в котором Вы вообще ничего не меняли в разделе «Управление питания процессора». А второй режим работы — это когда Вы применяли программу UnparkCPU.
Делаем так. Качаем программу WinRAR отсюда. И проверяем Тестом на производительность, Ваш ЦП. Какая цифра получилась? :)


WinRAR 5.00 (64 bit). А у меня:

Далее, собственно повышаем производительность ЦП.

  1. Минимальное число ядер в состоянии простоя: 99%.
  2. Разрешить состояния снижения питания: Вкл.
  3. Отключение простоя процессора: Включить состояние простоя.
  4. Минимальное состояние процессора: 0%.
  5. Политика охлаждение системы: Активный.
  6. Переопределение ядра приостановки ядра производительности процессора: Включено.
  7. Максимальное состояние процессора: 100%.
  8. Максимальное число ядер в состоянии простоя: 100%.
  1. Если сделать 100%, или сделать ниже 94% опцию, то одно из ядер у Вас будет приостановлено системой. Чем меньше % поставите тем больше ядер будут в простое. Зависит от количества ядер в вашей системе. У меня 8 виртуальных.
  2. Что бы процессор был холоднее. На производительность не влияет.
  3. Что бы процессор был холоднее. Негативно влияет на производительность процессора, если выключить.
  4. У меня ни на что не влияет. Но у некоторых пользователей отключает энергосберегающие технологии (понижение частоты ЦП и снижение напряжения). По этому в ноль значение.
  5. Что бы процессор был холоднее. Что интересно, латентность в работе с оперативной памятью системы повышается, если эту опцию деактивировать. Проверял в AIDA64.
  6. Немного снижает производительность ЦП.
  7. Хотите что бы ядра работали на все 100%? Тогда и ставьте 100% в этой опции. Это ограничение максимальной нагрузки процессора.
  8. Очень интересная опция. Если сделать например 0%, то не все ядра будут грузиться системой. А например только лишь 4 из 8, тем же WinRAR 5.00 или в Battlefield 4. И это при том, что активны будут все(!) ядра, не одно не будет приостановлено.

Ну а теперь, запускайте тест в WinRAR. Ну как? Циферки поднялись?

У меня было раньше 4700-5700 примерно. Максимум примерно до 6000 прыгал результат.

Теперь смотрите скрины из игры Battlefield 4 (все опции ультра, сглаживание убрано):



Самый минимальный ФПС который я видел, это 45. И то, это было кратковременное снижение производительности, на карте 64/64 игроков, в тесном помещении при взрывах и грохотах. Средний ФПС 50-55. И это на видеокарте 580GTX, и процессором i7860. Не самая топовая «конфа» в наше время. Да?
Результаты.
Все ядра в диспетчере задач во время игры (или любое другое многопточное задание), практически загружаются равномерно, не одно ядро в простое не наблюдал, парковка вырублена напрочь! Выключена только парковка ядер, другие энергосберегающие технологии остались на месте! Температуры по ядрам во время игры максимум 65-67 градусов. UnparkCPU это плохо. Так что. Советую сделать все опции, как я описал выше, что бы получить результат максимальный — как у меня.
Не забывайте. Все результаты были исследованы на моей конфигурации компьютера. У меня процессор Интел — i7860 с включённым HT и в разгоне до 3800 герц. У меня не АМД. У тех, у кого АМД я Вам точно не гарантирую, что повысится производительность. У может Вас, может будет другой результат? Хотя не должно быть по другому, если на и на АМД реализована технологи парковки ядер. Старался учесть любое количество ядер в ЦП, этими настройками. Там не просто так стоят те циферки, которые я указал. Они не «от балды» все. :)
Спасибо за внимание. С наилучшими пожеланиями к Вам — помочь. Приятной игры! ;)

ЗЫ: За темой слежу. Я не оставлю её.

Благодаря важной информации от Ligas и KROOM (спасибо Вам!) 4-ый пункт в настройках питания «Минимальное состояние процессора» выставлен в 0%. Так как на некоторые типы процессоров этот параметр влияет, и не даёт работать функции энергосбережения по частоте и вольтажу процессора, повышая частоту процессора и напряжение на нём до максимума, который выставлен в настройках БИОС. Тем более как я ранее выяснил у себя, этот параметр не влияет на производительность процессора. :)

Читайте также: