--==Phantom(RUS32)==--

Парковка ядер многоядерных процессоров в Windows 7

6 сообщений в этой теме

На хабре нашел интересную статью.

 

Одним из проблемных моментов современных многоядерных процессоров является их энергопотребление, для минимизации которого производители процессоров используют свои аппаратные технологии. Кроме того, производители процессоров дают рекомендации разработчикам операционных систем, за счет чего можно дополнительно снизить энергопотребление. При разработке Windows 7 и Windows 2008 R2 компания Microsoft прислушалась к таким рекомендациям от Intel.

Как известно, при работе на многоядерных процессорах, операционная система производит ротацию потоков между ядрами. Другими словами, переносит поток с более загруженных на менее загруженные ядра, что обеспечивает равномерную загрузку всех ядер системы. Но такая постоянная ротация приводит к потере производительности и повышению энергопотребления. Чтобы изменить ситуацию в Windows 7 и Windows 2008 R2, была реализована функция "идеального ядра", которая оставляет выполнение процесса на том ядре, на котором он начался, до полного его завершения. Такой подход позволяет получить более отзывчивую систему. Кроме того, с подходом "идеального ядра", была реализована функция "парковка ядер", позволяющая переносить все задачи на одно ядро, а остальные переводить в бездействие, если это позволяет уровень основной нагрузки. Соответственно, совместная работа двух функций позволяет минимизировать число использования ядер в режиме бездействия, что в свою очередь приведет к снижению энергопотребления и получению более отзывчивой системы.

Для отображения параметров парковки ядра в графическом интерфейсе панели управления необходимо импортировать в реестр следующие значения:

 

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% для четырех ядерного процессора или 50% для двух ядерного процессора(эксперементально).

 

Вызвав Монитор ресурсов через Диспетчер задач, на вкладке ЦП можно будет увидеть, что часть ядер припаркована.

 

В общем попробовал я.Реально работает 1 ядро из 4х. Когда оно перегружается запускаются остальные. Тормозов нет.

Редактировано пользователем --==Phantom(RUS32)==--
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну а для игр это тоже пойдёт или наверно не стоит, ибо многие игры сделаны с поддержкой многоядерности

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Попробовал. Работает.

Только последний параметр «Максимальное число ядер в состоянии простоя», как написано «экспериментально» (для двух ядер) установил 75% или выше, при 50% и до 75% второй процессор останавливается и не запускается, несмотря на то что первый нагружен на 100%.

Процессор Intel® Core2 Duo CPU E8400 @ 3.00GHz.

Нагружал систему WINRAR-ом.

Тормозов не увидел, только вот не знаю нужно ли. Едва ли я с экономлю на этом электроэнергии хотя бы на пачку сигарет. Один раз постирать и погладить рубашку всю эту экономию доской накроет.

Актуально наверно для ноутбуков. Но там это наверно уже предусмотрено. На счёт увеличения производительности - пока не знаю. Посмотрю.

Для игр – нечего страшного, если игре нужен не один процессор, то так и будет. Речь идёт о том что часами можно сидеть в интернете, печатать, смотреть кино и гонять без особого смысла четыре процессора.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А может допустим нагрузка 100% на 1ядро то потребляет 100ватт допустим если винда делит на 4ядра с нагрузкой 25% то каждое ядро потребляет 25 ватт а не100 и получаеться тоже самое)

В современных материнках есть Cool'n'Quiet ( снижает множитель до 4 в простое и напряжение на проц) + в моей чип от асус EPU (снижает потребление электричства)

толку от парковки особой не вижу

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пока на счет улучшения производительности я ничего не заметил. Функцию "идеального ядра" включил, а "Разрешить состояния снижения питания" оставил как есть, мне как-то от этого потребления эл.энергии компа ни тепло ни холодно, праковку тоже не стал закреплять.

 

Попробовал. Работает.

Только последний параметр «Максимальное число ядер в состоянии простоя», как написано «экспериментально» (для двух ядер) установил 75% или выше, при 50% и до 75% второй процессор останавливается и не запускается, несмотря на то что первый нагружен на 100%.

Да, значение изменяется после 75, т.к. если до 75, то проц тупо ограничивается 1м ядром и для нескольких мелких программ это разделение бы пошло, но если загрузить 1 приложение, например игрушку ME2, которой частоты 1го ядра мало, то она сможет использовать только 1 ядро (100% его), а на 2е перегружаться не будет и возможны некоторые тормоза. Поэтому надо ставить либо 50% либо 100%. 50% это и есть то что называется "парковкой" (закрепление на 1м ядре, в случае с 2х ядерным процем).

Получается загруженность 2го ядра не имеет разницы, что при значении более 75, что 100. Если ядра 2, то значит 1 ядро=50% от всех ядер.

 

Как известно, при работе на многоядерных процессорах, операционная система производит ротацию потоков между ядрами. Другими словами, переносит поток с более загруженных на менее загруженные ядра, что обеспечивает равномерную загрузку всех ядер системы. Но такая постоянная ротация приводит к потере производительности и повышению энергопотребления.

Сразу вопрос: а зачем тогда было делать ротацию? Ведь на то должны быть причины.

В инете есть эта статья на сайте Intel, а значит это не левая инфа самоделкиных, которые обычно "знают" (в ковычках) как настроить винду лучше работать. Почему бы Microsoft сразу не задать такие настройки...

 

З.Ы. узнал, оказывается Intel объяснили Microsoft это уже после выхода W7 =\

Редактировано пользователем Elones
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не лучшим образом сказывается на производительности парковка ядер. На ноутах может и сойдет. :unsure:

1. Парковка включена

2. Парковка выключена

post-203103-038011600 1416025067_thumb.png

post-203103-047073300 1416025076_thumb.png

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Зарегистрироваться на нашем форуме.


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now