вторник, 9 апреля 2013 г.

Ручное распределение загрузки ядер с CPU Control


О оптимизация работы многоядерных процессоров
      Не смотря на то, что многоядерные процессоры (и многопроцессорные компьютеры)давно вошли в нашу жизнь, далеко не все программы умеют корректно взаимодействовать с несколькими ядрами, а так же грамотно использовать и оптимизировать доступные системные ресурсы.
     Уже давненько существует интересная программа, которая позволяет управлять приоритетом использования ядер процессоров, т.е., фактически распределять нагрузку на то или иное ядро. О ней и пойдет речь в этой статье.
     Вообще говоря, процессор является одним из ключевых, если не самых главных, компонентов, отвечающих за производительность в системе, потому имеет смысл корректно и правильно использовать его возможности. Глобально, в этом направлении, с точки зрения программной оптимизации, есть два пути:
1. В случае с многоядерными процессорами: это распределение нагрузки по ядрам. Дело здесь в том, что изначально не все процессы могут использовать адекватно все ядра в системе, т.е., нет поддержки многоядерности, или корректно занимать те из них, что не заняты обсчетом других приложений и нужд, потому имеет смысл вручную (или автоматически) разносить приложения на отдельные ядра или группы ядер, для корректного распределения нагрузки и/или ускорения работы.
2. В случае со всеми процессорами, т.е., одноядерными в том числе: это работа с приоритетами системы. Дело в том, что по умолчанию Windows присваивает всем запускаемым процессам нормальный приоритет, что ставит приложения в равные условия в плане получения процессорных мощностей. Однако, согласитесь, что, скажем, 3D игра и обычный блокнот ( NotePad ) – это немного разные приложения и, очевидно, что игре нужно больше ресурсов процессора в реальном времени, т.к., находясь в трехмерном приложении Вы вряд ли взаимодействуете с этим самым блокнотом и он Вам не нужен до поры, до
времени (да особых мощностей процессора блокноту почти не надо). Отсюда вытекает, что приоритеты у разных приложений должны быть разные (особенно во времена многоядерности), но на практике это далеко от реальности.
     И в том и в другом случае, решить проблему помогают программы для того предназначенные. Речь об одной из них пойдет ниже.


Оптимизируем работу процессора, распределяя нагрузку по ядрам
      Что это за распределение нагрузки и как оно выглядит? Говоря простым языком, можно вручную, запустив программку, повесить все системные службы на просчитывание первым ядром, антивирус ( AntiVirus ) и фаерволл ( FireWall ) вторым, браузер ( Internet Explorer, Mozilla FireFox, Google Chrome, Opera и другие) и аську ( ICQ ) третьим и.т.д. Подобные манипуляции повышают производительность системы за счет более адекватного использования процессорных ядер, т.е., в некотором смысле получается этакая расширенная насильная поддержка многоядерности.
     В этом нам поможет такая программа, как CPU Control. К сожалению, она несколько устарела и не сможет поддерживать все новые процессоры, но для решений 2...4 ядра подойдет вполне. С более многоядреными версиями не факт. Так же, что печально, но хочется отметить, что имеется поддержка не всех версий процессоров, что, опять же, связано с давностью обновления программы, но не мешает всё таки некоторым поэкспериментировать.
     Собственно, программа полностью бесплатна, поддерживает русский язык, не требует установки (можно работать с USB флешки) и предельно проста в управлении.

Поддерживает программа следующие системы Windows:
Windows 7 / Vista / XP / 2000 / 98.
Владельцам одноядерных процессоров вряд ли принесет какую-то пользу, если только одноядерный процессор не имеет в себе функцию разбиения физического ядра на два логических.

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



     Сразу идем на вкладку "Options" и задаем галочками "Автозапуск с Windows" и "Минимизировать", далее выбираем язык и ставим галочку 4 ядра, если их 4, или не ставим, если их два.


    Дальше есть несколько путей:
Ручной - мы задаем для каждого процесса всё сами,
Авто - программа сама назначает распределение по ядрам,
CPU1 - приоритет отдается первому ядру,
CPU2 - приоритет отдается второму ядру.
Последние два нас не интересуют, так как мы будем заниматься оптимизацией, а не наоборот. Будем работать с первыми двумя.


     Для начала пару слов про режим "Авто". Это довольно удобный режим, когда нет особого желания заморачиваться с тонкой настройкой или знаний на эту настройку не хватает. Потому можно выбрать этот режим и один из 9 профилей для него, которые, на базе неких правил, распределяют приложения по ядрам. Так можно получить неплохой прирост производительности без особых заморочек, особенно, если некоторое время повыбирать правильный профиль под Вашу текущую систему.
     Второй вариант - это режим "Ручной". Он более сложен, т.к., требует определенного понимания концепции работы системы, приложений и т.п.



     Перейдя в "Ручной" режим, мы сможем сами распределять процессы по ядрам или группам ядер. Делается это путем выделения одного или нескольких процессов и последующим нажатием правой кнопки мышки. Здесь собственно, CPU и его
номер – это номер ядра. Т.е., если Вы хотите повесить процесс на 4-ое ядро, то выбираете CPU4, если на 1-ое и 3-тье, то CPU 1+3, и.т.д. Думаю, что идея ясна. Теперь о том как лучше распределять.
     Глобально, имеет смысл растаскивать процессы на группы, а ресурсоёмким приложением выделять все ядра сразу. Например, фаерволл и антивирус отдать на попечение 3+4 ядер, системные мелкие процессы, а так же небольшие программы,
вроде аськи и прочее на 1-ое, игры-фотошоп ( Adobe PhotoShop )-прочее-тяжелое на 1+2+3+4. Либо, как вариант, попробовать всё повесить на все и посмотреть, что будет.



     Контролировать нагрузки на ядра можно в диспетчере задач (Windows Task Manager). Важно включить в нем мониторинг нагрузки на ядра, что делается по кнопке "Вид" –> "Вывод времени ядра" ("View" -> "Show Kernel Times") и  "Вид” –> "Загрузка ЦП" –> "По графику на каждый ЦП" ("View" -> "CPU History" -> "One Graph Per CPU").
В идеале делать всё это надо не в режиме простоя сразу после запуска компьютера, а в режиме загруженной системы, т.е., при запущенных ресурсоёмких приложениях, вроде игр, фотошопа и.т.д.
     К слову, вот на 4-х ядрах даже в автоматическом режиме прирост производительности значительно ощутим, зато на 2-х почему-то даже в ручную не всегда удается достигнуть мощи. В общем и целом здесь огромное поле для экспериментов.


Желаю добиться максимальной производительности компютера !!! :-)

Удачи!


     Данная статья является переделанным и дополненным вариантом источника в интернете > здесь. Спасибо Sonikelf !
.

Комментариев нет:

Отправить комментарий