Оптимізація роботи багатоядерних процесорів або Ручне розподіл завантаження ядер. CPU Control оновлення





Вітаю, дорогі друзі, читачі, знайомі і всякі інші особистості.

Сьогодні я вирішив оновити і доповнити одну зі старих і неповних статей по оптимізації, причому оновити не просто, а вставивши в неї частину матеріалу одного з уроків мого курсу навчання. Так що .. поїхали Оптимізація роботи багатоядерних процесорів або Ручне розподіл завантаження ядер. CPU Control оновлення

Не дивлячись на те, що багатоядерні процесори (і вже, тим більше, багатопроцесорні комп’ютери) давно увійшли в наше життя, далеко не всі програми вміють коректно взаємодіяти з декількома ядрами, а так само грамотно використовувати і оптимізувати доступні системні ресурси.

Оптимізація роботи багатоядерних процесорів або Ручне розподіл завантаження ядер. CPU Control оновлення

Вже давненько я зіткнувся з цікавою програмою, яка дозволяє управляти пріоритетом використання ядер процесорів, тобто фактично розподіляти навантаження на те чи інше ядро. Про неї і піде мова в цій невеликій статті.

Взагалі кажучи, процесор є одним з ключових, якщо не найголовніших, компонентів, що відповідають за продуктивність в системі, тому має сенс коректно і правильно використовувати його можливості. Глобально, в цьому напрямку, з погляду програмної оптимізації є два шляхи:

У випадку з багатоядерними процесорами, — це розподіл навантаження по ядрам. Справа тут в тому, що спочатку не всі процеси можуть використовувати адекватно всі ядра в системі (т.е немає підтримки багатоядерності) або коректно займати ті з них, що ні зайняті обрахуванням інших додатків і потреб, а тому має сенс вручну (або автоматично) розносити додатки на окремі ядра або групи ядер, для коректного розподілу навантаження та / або ушустренія роботи

У випадку з усіма процесорами, т.е одноядерними в тому числі, — це робота з пріоритетами системи. Справа в тому, що за замовчуванням Windows присвоює всім запускає процес нормальний пріоритет, що ставить додатки в рівні умови в плані отримання процесорних потужностей. Однак, погодьтеся, що, скажімо, 3D гра і звичайний блокнот, — це трохи різні додатки і, очевидно, що грі потрібно більше ресурсів процесора в реальному часі, т.к перебуваючи в тривимірному додатку Ви навряд чи взаємодієте з цим самим блокнотом і він Вам не потрібен до пори до часу (та особливих потужностей процесора блокноту майже не треба, — там тієї програми то .. раз два і нема). Звідси, ніби як логічно випливає, що пріоритети у різних додатків мають бути різні (особливо в часи багатоядерності то), але на практиці це далеко від реальності.

І в тому і в іншому випадку, вирішити проблему допоможуть програми для того призначені. Про пріоретізаціі я вже трохи говорив у відповідній статті, а про розподіл йтиметься нижче.

Оптимізуємо роботу процесора, розподіляючи навантаження по ядрам.

Що це за розподіл навантаження і як воно виглядає? Говорячи простою мовою, можна вручну, запустивши програмку, повісити всі системні служби на прораховування першим ядром, антивірус і фаерволл друге, браузер і аську третім і тд і тп. Подібні маніпуляції, буває підвищують продуктивність системи за рахунок більш адекватного використання процесорних ядер, тобто в деякому розумінні виходить така собі розширена насильницька підтримка багатоядерності.

У цьому нам допоможе така програма, як CPU Control. На жаль, она дещо застаріла і може підтримувати не всі процесори, але для рішень 2-4 ядра підійде цілком. З більш многоядренимі версіями не факт. Так само, що сумно, але хочеться відзначити, що є підтримка не всіх версій процесорів, що, знову ж таки, пов’язано з давністю поновлення програми, але, думаю, не заважає все таки деяким поекспериментувати.

Власне, програма повністю безкоштовна, підтримує російську мову, не вимагає установки (можна тягати на флешці) і гранично проста в управлінні. Власникам одноядерних процесорів навряд чи принесе якусь користь, якщо тільки одноядерний процесор не має в собі функцію розбиття фізичного ядра на два логічних.

Скачати можна прямо з мого сайту, а саме звідси.

Після запуску бачимо приблизно таку картину:

Де відразу йдемо на вкладку «Options» і задаємо галочками «Автозапуск з Windows», «Мінімізувати», мова і ставимо галочку 4 ядра, якщо у нас їх, власне, 4 або не ставимо, якщо, власне, їх два.

Далі є кілька шляхів, а саме:

Ручний, т.е коли ми задаємо для кожного процесу все самі, т.е на якому ядрі / ах він буде .. м .. оброблятися

Авто, т.е, коли програма сама призначає розподіл по ядрам

CPU1, т.е, коли пріоритет віддається першому ядру

CPU2, т.е, коли пріоритет віддається другому ядру

.

Останні два нас не цікавлять, бо ідея передачі навантаження кудись в одне місце мені не ясна. Ми як-не займаємося оптимізацією, а не навпаки :). Тому будемо працювати з першими двома.

Для початку пару слів про «Авто«. Це досить зручний режим, коли немає особливого бажання морочитися з тонким налаштуванням або знань на цю саму настройку не вистачає. Тому можна вибрати цей режим і один з 9 профілів для нього, які, на базі деяких правил, розподіляють додатки по ядрам. Так можна отримати непоганий приріст продуктивності без особливих проблем, особливо, якщо деякий час повибірать правильний профіль під Вашу поточну систему.

Другий варіант, як уже говорилося, — це режим «Ручний». Він складніший, т.к вимагає певного розуміння концепції роботи системи, програм і тп.

Перейшовши в цей режим, Ви зможете самі розподіляти процеси по ядрам або групам ядер. Робиться це шляхом виділення одного або кількох процесів і наступним натисканням правої кнопки мишки. Тут власне, CPU і його номер — це номер ядра. Тобто якщо Ви хочете повісити процес на четвертому ядро, то вибираєте CPU4, якщо на першому і 3-тє, то CPU 1 + 3, і тд. Думаю, що ідея зрозуміла. Тепер про те як краще розподіляти.

Глобально, має сенс розтягувати процеси на групи, а ресурсомісткі програми виділяти всі ядра відразу. Т.е, наприклад, фаерволл і антивірус віддати на піклування 3 + 4 ядер, системні дрібні процеси, а так само невеликі програми, на кшталт аськи, Punto Switcher та іншу шушваль на першому, ігри-фотошоп-інше-важкий на 1+ 2 + 3 + 4. Або, як варіант, спробувати все повісити на все і подивитися, що буде.

Моніторити навантаження на ядра можна в тому ж диспетчері завдань. Важливо включити в ньому моніторинг навантаження на ядра, що робиться по кнопці «Вид» — «Висновок часу ядра» і «Вид» — «Завантаження ЦП» — «За графіком на кожен ЦП». В ідеалі таки робити все це не в режимі простою відразу після запуску комп’ютера, а в режимі завантаженої системи, т.е при запущених ресурсоємних додатках, начебто ігор, фотошоп чи що там у Вас їсть ресурси.

До слова, ось на 4-х ядрах навіть в автоматичному режимі приріст продуктивності значно відчутний, зате на двох чомусь навіть в ручну не завжди вдається досягти мощі.

У загальному і цілому тут величезне поле для експериментів, яке Вам, сподіваюся, буде вивчити, бо у кожного своя система, набір програм і все таке інше. Поле, до речі, мінне, бо легко можна домогтися зворотного ефекту замість оптимізації, але зате як цікаво поколупатися :). Спробуйте використовувати різні профілі в авторежимі або ручне налаштування, щоб домогтися максимальної продуктивності на Вашому комп’ютері.

Післямова.

У двох словах якось так. Хтось звичайно скаже, що не варто усім цим заморочуватися заради скільки-то процентного приросту і плавності роботи, — Ваше право. Я люблю возиться з системою і доводити її швидкість, зручність і все таке інше до нових висот, нехай і не завжди великих, але зате великих.

Мені буде цікаво, якщо в коментарях Ви розкажіть як тестували, налаштовували, які результати спостерігали і до чого прийшли. Які налаштування та схеми налаштувань, по Вашому, найбільш оптимальні і чому. Особливо це цікаво для мене як порівняння з групою, яка зараз навчається, бо деякі з них домоглися як істотно відмінних результатів, так і зворотних :). Подивимося, що вийде у Вас.

Загалом, рекомендую хоча б спробувати Оптимізація роботи багатоядерних процесорів або Ручне розподіл завантаження ядер. CPU Control оновлення

PS: Тут недавно були проблеми з розсилкою, тому на пошту багатьом могли прилетіти посилання на Партнерські та Гостьові статті. Мої вибачення за доставлені незручності.