Современные центральные процессоры (ЦП) обладают несколькими ядрами или, как их ещё называют, физическим процессорами (ФП). Операционные системы (ОС), под управлением которых работают персональные компьютеры (ПК) могут использовать несколько ФП для оптимизации мультизадачности. Проще говоря, каждое приложение может выполняться на каком-то одном ядре одновременно с другими приложениями на других ядрах. Число ядер, таким образом, существенно влияет на быстродействие системы в целом.
Иногда вследствие использования различных режимов экономии энергии или повышения времени автономной работы ПК некоторые ФП могут быть отключены и в дальнейшем системой не задействованы. Всё это может приводить к уменьшению быстродействия ПК в целом.
Рассмотрим, как включить второе (третье, четвёртое и т.д.) ядро процессора.
В операционной системе Виндовс можно посмотреть количество работающих ядер можно двумя способами:
- с помощью диспетчера устройств;
- во вкладке «Быстродействие» диспетчера задач.
В первом случае мы можем увидеть количество логических процессоров (ЛП). Если используется технология HyperTreading, то число физических будет в два раза меньше.
Как включить все ядра на компе
Во втором случае число хронологий загрузки также будет равно числу ЛП.
Следует понимать, что максимальное значение количества используемых физических процессоров может отличаться от задействованных в настоящее время.
Узнать это значение средствами ОС, доступными пользователям по умолчанию не представляется возможным. Для этого существуют сторонние программы, например, CPU-Z или AIDA. Первая показывает число работающих ФП и их максимально возможное количество на своей основной панели. Чтобы увидеть эту же информацию в программе AIDA, следует в ней зайти во вкладку «ЦП».
Преимущества и недостатки включения всех ядер процессора
Для реализации всех возможностей имеющегося у пользователя процессора, конечно, желательно активировать все его ФП. Даже если выполняется одна задача, при правильном распределении потоков, остальные ядра будут находиться в режиме ожидания и их работа не окажет никакого влияния на энергопотреблении всей системы.
В настоящее время трудно найти программу, не использующую многопоточность. Даже офисные приложения, казалось бы, уж на что простые, но и в них используется эта технология.
Единственным плюсом «одноядерности», то есть отключения всех ядер у ЦП, кроме одного, является необходимость экономии энергии в мобильных устройствах – ноутбуках или нетбуках.
Ну и конечно, обязательно стоит упомянуть главный минус «многоядерности»: даже при небольшой загрузке всех ядер энергопотребление ЦП возрастает в разы. Это увеличивает его износ, износ системы охлаждения и величину потребляемой электроэнергии.
Внимание! Мощность современных ЦП составляет десятки, очень редко сотни ватт в пике производительности. Среднее же энергопотребление ЦП равняется примерно 40-50 ватт. Для стационарных систем это совсем немного, а вот для ноутбуков весьма критично.
Как включить все ядра на Windows и узнать их количество в процессоре компьютера
Запуск и отключение ядер процессора
Надёжнее всего осуществлять запуск или отключения ФП при помощи настроек BIOS. Способ этот хорош тем, что он в 100% случаев гарантирует их включение или отключение, но, самое главное – делает это перед загрузкой ОС, что в случае установок «по умолчанию» заставит её использовать все имеющиеся в наличии ФП.
К сожалению, единой инструкции, как это можно сделать, не существует, поскольку опции включения дополнительных компонентов ЦП в BIOS от разных производителей может быть где угодно.
Чаще всего раздел, в котором указывается количество работающих ФП, называется «CPU Settings», а искомый параметр имеет имя «Number of cores», «Cores activated» и тому подобное. Необходимо в него записать максимально возможное значение, которое позволит система, и выйти из BIOS, выбрав опцию «Save settings and exit».
Источник: dzen.ru
Привязка процесса к процессору (Processor Affinity) в Windows
По умолчанию в Windows запущенное приложение может выполняться на любом из ядер CPU. Распределением процессов между ядрами управляет операционная система. Однако вы можете вручную привязать определенные процессы к ядрам процессора с помощью Processor Affinity. В этой статье мы покажем, как вручную привязать программу/процесса к определенным ядрам.
Чаще всего ручная привязка процессу к ядрам нужна, когда:
- Вы хотите ограничить использование ресурсов CPU для определенного приложения;
- Некоторые legacy приложения могут некорректно работать в многоядерной архитектуре;
- Вы хотите повысить производительность ресурсоемкого приложения, выделив программе отдельные ядра CPU. Благодаря этому можно гарантировать доступность ядер для вашего процесса и уменьшить задержки, связанные с выбором и переключением между процессами.
Задать ядра CPU для приложения с помощью Task Manager
Вы можете вручную привязать процесс к определенным ядрам с помощью Task Manager.
- Запустите Taskmgr.exe и перейдите на вкладку Details;
- Найдите нужный процесс, щелкните по нему правой клавишей и выберите Set Affinity;
- В открывшемся окне появится список ядер процессора. По умолчанию процесс может выполняться на любом из ядер CPU;
- Вы можете оставить включенными только те ядра, на которых должен выполняться ваш процесс.
В утилите Process Explorer вы можете также назначить ядра CPU для любого процесса. Щелкните по любому процессу и выберите Set Affinity.
Настройка Processor Affinity с помощью PowerShell
Вы можете управлять привязками процессам к ядрам с помощью PowerShell. Например, чтобы отобрать привязку процесса pwsh.exe к CPU, выполите такую команду PowerShell:
Get-Process pwsh | fl ProcessorAffinity
ProcessorAffinity : 63
Что означает число 63? Значение ProcessorAffinity это битовая маска, где каждому биту соответствует номер ядра процессора.
Получить количество ядер CPU на компьютере можно из переменной окружения:
В текущем компьютере доступно 6 ядер (если процессор поддерживает HyperThreading, то каждое ядро процессора будет считаться двумя логическими ядрам).
В нашем случае битовая маска для ProcessorAffinity получилась так:
CPU | Decimal | (2*decimal-1) | Hex |
CPU0 | 1 (2 0 ) | 1 | 1 |
CPU1 | 2 (2 1 ) | 3 | 2 |
CPU2 | 4 (2 2 ) | 7 | 4 |
CPU3 | 8 (2 3 ) | 15 | 8 |
CPU4 | 16 (2 4 ) | 31 | 10 |
CPU5 | 32 (2) 5 | 63 | 20 |
CPU6 | 64 (2) 6 | 127 | 40 |
CPU7 | 128 (2) 7 | 255 | 80 |
1+2+4+8+16+32=63
Это означает, что для процесса доступны все 6 ядра.
Если вы хотите разрешить процессу использовать только 0 и 3 ядра, значение ProcessorAffinity нужно задать 9 (1+8)
Чтобы задать привязку ядер для процесса с помощью PowerShell, выполните команду:
$process = Get-Process pwsh
$process.ProcessorAffinity = 9
Если вы указали некорректно значение, команда вернет ошибку:
SetValueInvocationException: Exception setting «ProcessorAffinity»: «The parameter is incorrect.»
Проверьте текущие настройки процесса в Task Manager:
Если вам нужно сразу запустить процесс с привязкой к определенным ядрам, используйте такую команду:
Ярлык для запуска программы на одном ядре CPU
Для корректной работы некоторых устаревших приложений нужно, чтобы оно работато на первом ядре CPU.
Для запуска программы на CPU0 нужно выполнить такую команду:
cmd.exe /C start /affinity 1 myapp.exe
В данном примере в параметре affinity мы указали 1. Это значение ProcessorAffinity, которое указывает что программа будет всегда выполняться на первом ядре.
Выполните команду и проверьте, что процесс выполняется на CPU0.
В командной строке значение affinity задается в шестнадцатеричном режиме. Проще всего посчитать значение с помощью калькулятора в режиме Programmer.
1 (CPU0) + 2 (CPU1) +8 (CPU3) + 20 (CPU5) = 2B
Команда для запуска программы с привязкой к 4 ядрам:
cmd.exe /C start /affinity 2b pwsh.exe
Проверьте, что процесс привязан к указанным четырем ядрам.
Вы можете сразу увеличить приоритет процесса с помощью параметра /High:
cmd.exe /C start /high /affinity 1 myapp.exe
Другие возможные значение приоритета процесса: /low | /normal | /high | /realtime | /abovenormal | /belownormal
Если вам нужно постоянно запускать программу на одном ядре, можете создать на рабочем столе ярлык с параметрами:
cmd.exe /c start «Acrobat DC» /affinity 1 «C:Program FilesAdobeAcrobat DCAcrobatAcrobat.exe»
Если вы хотите изменить иконку ярлыка, нажмите кнопку Change Icon и укажте полный путь к исполняемому exe файлу целевого приложения. Выберите из ресурсов иконку, которая вам нравится.
Теперь, пользователю достаточно дважды щелкнуть по ярлыку, чтобы запустить приложение на одном ядре.
Некоторые приложениях Microsoft позволяют задать CPU Affinyty в настройках:
- Вебсайт IIS (Выберите ваш app pool -> Advanced settings -> Processor Affinity Enabled = True , Processor Affinity Mask = 1 )
- Microsoft SQL Server -> выберите настройки инстанса и перейдите на вкладку Processors. Назначьте ядра в столбце Processor Affinity.
Источник: vmblog.ru
Совет для профессионалов: Назначьте конкретные процессорные ядра для определенных приложений в Windows 10
Последние несколько недель Windows Central документирует и объясняет различные советы для Windows 10, предназначенные для новичков и новичков в Windows. Сегодня мы рассмотрим более продвинутый совет, который может понравиться некоторым энтузиастам. Еще раз, это перенос с предыдущих версий Windows, поэтому он не нов, но, подобно «Режиму Бога», многие люди могут не знать об этом или просто забыли эту функцию.
В Windows 10 и под учетной записью администратора вы можете указать, какие ядра (вашего многоядерного процессора) будут использоваться для явных приложений.
Почему вы хотите сделать эту настройку? В связи с этим, это только для опытных пользователей, так как большинство пользователей потребительского уровня либо не получат выгоды, либо могут даже ухудшить ситуацию. Более подробное объяснение состоит в том, что назначение отдельных ядер приложению может в некоторых случаях повысить общую эффективность системы. Например, если вы выполняете тяжелый рендеринг, компиляцию или работу с видео, это гарантирует, что часть процессора всегда выделена для задачи.
Глядя на Википедию , вот что они говорят по этому вопросу для тех, кто более технически склонен:
«Сродство к процессору использует тот факт, что некоторые остатки процесса, который был запущен на данном процессоре, могут оставаться в состоянии памяти этого процессора (например, данные в кэше процессора) после запуска другого процесса на этом процессоре. Планирование этого процесса». выполнение на одном и том же процессоре может привести к эффективному использованию процесса за счет уменьшения ситуаций, снижающих производительность, таких как пропадание кеша. Практическим примером привязки к процессору является выполнение нескольких экземпляров непоточного приложения, такого как некоторое программное обеспечение для рендеринга графики. «
Напомним, что Windows и, как следствие, Windows 10, на самом деле очень хороши в управлении ядрами процессора и распределении ресурсов там, где это необходимо. Тем не менее, это Windows, так что вы мастер, и вы можете переопределять вещи, когда хотите.
Лучшая ставка: действуйте осторожно и делайте заметки о том, что вы изменили, чтобы вы могли легко вернуться, если что-то станет не так
Источник: gadgetshelp.com