Как заставить один поток работать на все ядра?
У меня есть программа для вычислений, есть 1 проблема — она работает на одном ядре и заполняет его на 100%, не трогая остальные ядра, сама программа может работать только в 1 потоке (Вычисления нельзя делать асинхронно). Я же хочу что бы она работала на всех ядрах (Можно и без полной работы, хотя бы 200% на всех ядрах), искал в инете инфу — везде разная, но ни один метод не сработал. Может у кого такая проблема была? Можете помочь.
Я в коде использовал SetThreadInfinityMask, из-за чего у меня поток работал только на первое ядро, по стандарту и поток делится (Переходит) на различные ядра https://i.stack.imgur.com/9NZRb.png Вероятнее всего @S.H был прав, нужно запустить 4 потока и на каждый поток с помощью SetThreadInfinityMask наложить своё ядро.
Заметил кстати что с SetThreadInfinityMask получается менее потребляющий поток, ибо ему не нужно постоянно переходить на другие ядра ради балансировки.
Два мифа оптимизации компьютера, которые никак не умрут
Несмотря на то что Windows считается операционной системой для обычных пользователей, в отличие от многочисленных дистрибутивов Linux, все равно позволяет совершать некоторые операции, за которые опытные пользователи все-таки предпочитают последнюю. В частности, имеется ввиду доступ к аппаратным составляющим. Сама ОС и установленные драйвера делают так (или, по крайней мере, пытаются), чтобы они работали на максимум и предоставляли лучший пользовательский опыт. Для начала нужно знать, как включить все ядра процессора на Windows 10 и данный вопрос мы подробно разберем в этой статье.
Количество работающих ядер по умолчанию в Windows 10
На каждое отдельное ядро может оказываться разная нагрузка, что связано с изменением загруженности ПК. Настройки BIOS позволяют задать отдельную рабочую частоту для ядер. При равномерном распределении нагрузки на ПК пользователь получат высокую производительность.
Если говорить о двухъядерном процессоре, то лишь в одном случае будет задействовано всего лишь одно ядро – при загрузке компьютера. С другой стороны, всегда есть возможность активировать все ресурсы, чтобы ускорить процесс загрузки (с другой стороны, загрузка Windows это не самый требовательный к CPU процесс, и вы выиграете намного больше, если просто поставите свою Windows 10 на SSD).
Как вообще работают ядра и как их включить
Есть распространенное ошибочное мнение касательно того, что на компьютере работают не все. Это не так. В любой момент, помимо включения, задействованы все из них, поэтому разумеется, вы никогда не узнаете, как отключить ядро процессора, потому что это невозможно. Но есть другой нюанс – они могут работать с разной частотой, отвечая за разные задачи. Современные процессоры часто оснащаются несколькими производительными, которые будут запускаться при играх, монтаже и других сложных задачах; и более простыми – для элементарных процессов. Таким образом, достигается баланс производительности и энергоэффективности, что особенно важно в отношении ноутбуков. Но ответа на вопрос, как включить второе ядро процессора в Windows 10, нет, потому что все они работают одинаково.
Также необходимо обратить внимание на то, что в некоторых случаях невозможно включить и направить мощность всех на обработку определенной задачи. Это зависит исключительно от разработчика ПО. Только он решает, разблокировать ли ядра и поддерживать ли многопоточность или нет. Если нет – наибольшую нагрузку и всю работу будет выполнять только одно, остальные же работают в щадящем режиме.
Способы включения ядер процессора на Windows 10
Чтобы активировать все ядра четырехядерного (пример) процессора при включении ПК, можно использовать:
- Перенастройку конфигурации системы.
- Настройки BIOS.
Инструкция ниже подойдет как для 32-, так и для 64-битной ОС редакций Windows 10:
- Откройте меню «Выполнить», нажав на сочетание клавиш Windows + R. Введите msconfig и нажмите Enter, чтобы открыть окно конфигурации системы.
- Перейдите во вкладку «Загрузка», выберите нужную ОС и нажмите на функцию «Дополнительные параметры загрузки».
- Выберите строку «Число процессоров» и в развернутом списке выберите максимальное доступное количество ядер.
- Кроме этого следует повысить «Максимум памяти», отключить опцию «Блокировка PCI». В таком случае ОС будет распределять нагрузку на все ядра равномерно. Подтвердите настройки, нажав на OK.
Примечание. В настройках «Максимум памяти» нужно выбрать любое числовое значение не ниже 1024 Мбайт. Иначе скорость загрузки компьютера может и даже уменьшиться.
Чтобы не выполнять эти действия каждый раз, в предыдущем окне «Конфигурация системы» установите галочку на пункте «Сделать эти параметры загрузки постоянными». Подтвердите действия на «Применить» и OK.
На что влияет многоядерность
Ядро процессора — это его сердце. Именно оно выполняет большую часть инструкций, которые пользователь в лице программ поручает компьютеру. Если в процессоре всего одно ядро, то, очевидно, что все расчеты выполняет оно, но делать это моментально нельзя, поэтому создается очередь, и команды ставятся на поток. Наиболее хорошо это заметно, когда пользователь открывает две или более программ, и они начинают запускаться поочередно.
Как включить все ядра на виндовс 7 — как использовать все доступные
Если же у процессора 2, 4, 6 или 8 ядер, то процессы распределяются между ними, что ведет к уменьшению очереди инструкций или ее полному исчезновению. Как уже было сказано, далеко не все даже самые популярные приложения поддерживают технологию многопоточности, но их появляется все больше и больше.
К сведению! Есть 32-х и 64-разрядные версии виндовс. Первые предназначены для одноядерных процессоров, а вторые — для многоядерных. Исходя из этого, также и уменьшается количество поддерживаемой ПК или ноутбуком оперативной памяти.
Любой современный ЦП обладает характеристикой многоядерности
Настройки процессора в BIOS
Изменять настройки BIOS нужно лишь в том случае, если ПК просто не загружается. Не нужно использовать данный метод, если у вас нет каких-либо начальных знаний по работе в BIOS. Лучше воспользуйтесь предыдущей инструкцией.
Для активации всех ядер многоядерного процессора через BIOS выполните следующие действия:
- Войдите в меню BIOS (перезагрузите компьютер и на начальном экране с информацией о материнской плате нажмите на F3,Del или Esc – зависит от производителя). Обычно на этом экране есть информация с указанием тех клавиш, которые необходимо нажать.
- В BIOS найдите раздел Advanced Clock Calibration и выберите параметры All Cores.
- Сохраните все настройки, нажав на F10 и Y (или используйте подсказки самого BIOS).
Настройка ядер для определенного процесса
Используя диспетчер задач можно включить требуемое количество ядер для определенной программы. Делается это следующим образом:
Примечание: в диспетчере задач, на вкладке быстродействия, можно увидеть работают ли все ядра на данный момент. Для каждого из них отображается своя диаграмма.
Стандартные средства ОС Windows 10
- Наведите курсор мыши на кнопку «Пуск» в левом нижнем углу экрана, щелкните правой кнопкой мыши и выберите «Параметры».
- Зайдите в категорию «Система».
- Откройте подкатегорию «О системе». Появится страница с информацией, где также будут указаны названия и частоты каждого из ядер.
Чтобы найти более подробную информацию обо всех устройствах, нужно открыть «Диспетчер устройств» (DEVMGMT.MSC).
Разверните ветку «Процессоры» и изучите графики (для четырехъядерного процессора их должно быть четыре и т. д.). Наведите курсор на любую строку, щелкните ПКМ и выберите опцию «Свойства». Здесь и будет вся необходимая информация о процессоре.
Сторонние утилиты
Если вас не устраивает функционал «Диспетчера устройств», вы можете установить одну из сторонних утилит. Самыми распространенными являются CPU-Z, AIDA64 и Everest.
CPU-Z можно загрузить с официального сайта по ссылке. При первом запуске утилита соберет данные о вашей конфигурации ПК. В первой вкладке вся информация о ЦП:
В остальных вкладках вы найдете подробное описание другого оборудования. Например, в SPD будет подробное описание оперативной памяти (Module Size, Manufacturer и так далее).
Программа AIDA64 загружается с ресурса создателей. В левой части окна необходимо открыть ветку «Системная плата» и перейдите в подраздел ЦП. В графе Multi CPU будет указано количество процессоров:
Программа Mz CPU Accelerator
Неплохая программа, которая автоматически добавляет наивысший приоритете тому окну, которым пользуются в данный момент. Это позволяет сделать так, чтобы текущий процесс не тормозился и выполнялся без задержек, так что пользователю будет удобно работать, а на остальные программы ресурсы будут выделяться по остаточному принципу.
Лучшие способы и приложения для прослушивания музыки на Айфоне
В разделе Exlusions можно задать исключения для некоторых процессов, их приоритеты программа не будет менять ни в коем случае. А вот в CPU Manager, как раз и находится интересующая пользователя функция. С помощью Mz CPU Accelerator можно будет распределить программы по ядрам, что сможет повысить эффективность работы, а также может оказаться гораздо более удобным для пользователей, у которых часто выполняется множество программ в фоновом режиме.
Приложение Bill2’s Process Manager
Весьма интересная утилита, которая поможет пользователю лучше контролировать ресурсы на своем компьютере. С помощью Bill2’s Process Manager можно будет задавать приоритеты выполнения для каждой из утилит на компьютере, что позволит оптимально расходовать ресурсы.
Здесь же можно ограничить программы по потребляемым ресурсам. Если есть утилиты, которые отнимают много памяти, то можно наложить на них ограничение и выделить только определенное количество на их выполнение. Эта же программа позволит создать правила не только для активных программ, но и для свернутых, что позволит еще лучше оптимизировать работу. Также есть возможность настройки того, что делать в случае, если программа зависнет. Можно подождать некоторое время, а можно и перезапустить его.
Запуск программы с привязкой к ядру
Для того, чтобы сразу после запуска приложение использовало определенное ядро, потребуется запустить его с нужными параметрами. Для этого, можно зайти в командную строку (Win+R и ввести cmd) и указать соответствующие параметры, например c:\windows\system32\cmd.exe /C start /affinity 1 software.exe. Таким образом, будет запущено приложение software.exe на 0 ядре. Здесь указывается номер ядра+1.
Эту же команду, пользователь может записать в ярлык приложения, что позволит запускать утилиту без дополнительных действий. Для этих же действий можно использовать сторонние приложения.
Что делать, если компьютер видит не все ядра
Из-за сбоя в работе операционки или после переустановки (обновления) Виндовс 10 ПК может не показывать все компоненты ЦП. Устранить такую неполадку удастся через настройки «Конфигурации…» или через БИОС. Пользователю придется самостоятельно активировать все ядра.
Как сделать видимыми компоненты ЦП через «Конфигурацию…»:
- вызвать «Выполнить»;
- написать символы: msconfig.
откроется «Конфигурация системы»;
отыскать подраздел под названием «Загрузка»;
выполнить активацию «Дополнительные параметры»;
- указать максимальное «Число процессоров» и «Максимум памяти»;
- убрать галочку около «Блокировка PCI» и «Отладка»;
сохранить и «Применить» измененные значения.
Как включить видимость компонентов через BIOS:
в момент загрузки ПК войти в БИОС;
отыскать «CPU Cores» или «Advanced Clock Calibration»;
выполнить активацию всех cores, то есть выставить режим «All Cores» или «Auto».
Иногда ПК не показывает все ядра, так как имеются неполадки в работе драйверов процессора. В таком случае придется их обновить самостоятельно. Обычно такая проблема возникает после переустановки Виндовса.
Как сделать видимыми все ядра:
выполнить активацию «Диспетчер устройств»;
- найти в списке слово «Процессоры»;
- развернуть ветку;
выделить конкретный процессор и запустить для него процедуру обновления драйверов;
предварительно можно зайти на сайт производителя своего ПК и скачать (добавить) новый драйвер для своей модели.
Иногда компьютер не видит процессор и его компоненты, если для редактирования ЦПУ применяется какая-нибудь сторонняя утилита. Например, CPU-Z, CPU-Control. Обычно такое случается, если скачанная программа не совместима с конкретным устройством. В таком случае настроить CPU, то есть активировать или деактивировать ядра, удастся с помощью служб самого Виндовса (через БИОС или «Конфигурацию…»). Пользователю придется самостоятельно вызвать сервис и выполнить активацию компонентов ЦП.
Как включить все ядра
Как включить все ядра
Обладателям мощных ПК с многоядерными процессорами обычно хочется настроить систему на выдачу полной мощности, чтобы получить максимальную производительность, но зачастую они не знают, как это осуществить. В данной статье мы рассмотрим инструкцию как включить все ядра.
Какой результат можно ожидать
Существует довольно распространенное заблуждение, что процессор с несколькими ядрами имеет ту же производительность, как и ПК с несколькими процессорами. Для примера можно представить аналогию с загрузкой материала в контейнер для переработки. Подносить продукт могут несколько рабочих вместо одного, если представить, что рабочие это ядра процессора. Передача и считывание информации происходит быстрее. Инструкция со скриншотами как разогнать процессор здесь .
Настройка ядер в BIOS
Иногда из-за севшей батарейки на материнской плате или по каким-либо другим причинам, происходит сброс параметров БИОСа до установок по умолчанию. В таком случае обычно требуется осуществить проверку и установить параметры вручную. Чтобы это сделать понадобится:
- В самом начале загрузки системы периодически нажимать кнопку «Del» на стационарных компьютерах или «F2»на ноутбуках.
- Попав в БИОС, открыть раздел с именем «AdvancedClockCalibration».
- Далее выставить там значение «AllCores». (в зависимости от модели материнской платы названия пунктов могут меняться и находиться в других вкладках).
- Выйти из БИОСа и сохранить настройки.
- После этого перезагрузить ПК.
Включение ядер в утилите конфигурации
Если параметры БИОСа установлены правильно, но ядра все равно не активны, можно попробовать изменить настройки в специальной программе конфигурации Windows. Для этого понадобится:
- Открыть строку«Выполнить» из стартового меню или воспользовавшись клавиатурной комбинацией «Win+R».
- Вписать туда msconfig.
- Кликнуть «ОК».
- Далее появится окно, в котором нужно перейти в раздел «Загрузка».
- После этого нажимаем на ссылку «Дополнительные параметры».
- Тут выбираем нужное количество ядер из списка.
- Кликаем «ОК».
После произведенных операций перезагружаем систему.
Настройка ядер для определенного процесса
Используя диспетчер задач можно включить требуемое количество ядер для определенной программы. Делается это следующим образом:
- Открываем диспетчер при помощи клавиатурной комбинации «Ctrl+Shift+Esc» или из контекстного меню панели задач.
- Далее переходим на вкладку с процессами. Находим нужное нам приложение и кликаем по нему правой кнопкой. (Естественно программа должна быть запущена в этот момент).
- В контекстном меню выбираем «Задать соответствие».
- В новом окне отмечаем все ядра.
- Нажимаем кнопку «ОК».
Настройки энергоснабжения
Иногда из-за параметров электропитания компьютер не использует все ядра процессора. Чаще всего такая ситуация встречается в ноутбуках. Чтобы проверить настройки и установить правильное значение, потребуется сделать следующее:
- Открыть «Панель управления» из стартового меню.
- Далее нажать на иконку«Электропитание».
- Выбрать активный профиль и кликнуть по ссылке«Настройка плана электропитания».
- В следующем окне нажать «Изменить дополнительные параметры».
- После этого находим строку «Управление питанием процессора».
- Открыв её, выбираем параметр «Минимальное состояние процессора».
- Для активации всех ядер тут должно быть выставлено значение «100%».
Более подробную инструкцию по настройке электропитания читайте здесь.
Как видите, настроить работу процессора на максимальную мощность не составляет особого труда. Процедура достаточно легкая. Хотите просматривать последние действия сделанные на вашем компьютере вот инструкция
Как запустить c на все ядра
- Откроется новое окно (системная программа) «Конфигурация системы», переходим в нем во вкладку «Загрузка».
- Если на компьютере установлена только одна операционная система Windows, сразу жмем кнопку «Дополнительные параметры». Если их несколько — выделяем в этом списке ту, которая запущена в данный момент (напротив названия будет указано «Текущая операционная система»).
- В открывшемся дополнительном окне можно просто снять флажок с элемента «Число процессоров», затем нажать «ОК» и «Применить» в предыдущем окне. Это будет означать, что Windows будет управлять — включать и выключать — ядрами в зависимости от текущих вычислительных нагрузок на процессор.
- При желании можно активировать беспрерывную работу всех ядер процессора. Просто ставим флажок напротив элемента «Число процессоров», в списке ниже — устанавливаем наибольшее доступное число, затем жмем «ОК» и «Применить» в предыдущем окне.
- При закрытии окна «Конфигурация системы» будет предложена перезагрузка компьютера.
- Открываем «Диспетчер задач» комбинацией клавиш «Ctrl + Shift + Esc». Во вкладке «Процессы» кликаем правой кнопкой мыши по целевой программе (при необходимости — раскрыть список подпроцессов, кликнув пару раз по значку программы) и выбираем из выпадающего меню пункт «Подробно»:
- На экране отобразится подробный список запущенных процессов, среди которых будет выделен тот, что выбран на предыдущем шаге. Вновь кликаем по нему правой кнопкой мыши и выбираем пункт «Задать сходство»:
- Теперь нужно отметить ядра (счет начинается с «0»), которые сможет использовать выбранный процесс. Номера ЦП можно выбрать произвольные — это неважно. Важно только отмеченное их количество. Нажимаем «ОК» для применения настроек.
- Создаем в любом месте на компьютере (можно на рабочем столе) обычный текстовый документ. Для удобства переименуем его в соответствии с названием запускаемой программы. Пускай, это будет «Paint.txt» (в вашем случае расширения «.txt» после названия может и не быть — не страшно, об этом чуть ниже).
- Открываем текстовый документ. В него нужно будет вписать команду вида:
- Для примера запустим программу «Paint» так, чтобы она могла работать только с одним ядром процессора (можно задать любое количество — рассмотрим этот вопрос ниже). Команда запуска будет выглядеть следующим образом (как быстро найти путь к запускаемому приложению, также рассмотрим ниже):
start /affinity 1 C:\Windows\System32\mspaint.exe
- Впишем это в созданный текстовый документ и закроем его.
- Теперь нам нужно «превратить» текстовый документ в исполнимый пакетный BAT-файл, для чего достаточно просто сменить расширение с «.txt» на «.bat». Но если у вас на компьютере расширения файлов не отображаются, откройте свойства файла «Paint», смените расширение в текстовом поле в верхней части открывшегося окна, далее нажмите кнопку «ОК» и затем «Да» в еще одном окне с предупреждением:
- Значок текстового документа изменится. Кликнем по нему два раза для запуска указанной программы (в нашем случае «Paint»).
- Теперь проверим, какие ядра использует только запущенный процесс. Для этого в «Диспетчере задач» (во вкладке «Подробности») кликаем правой кнопкой по процессу и выбираем пункт «Задать сходство» по инструкции выше:
- Как видно, все получилось — программа «Paint» уже при запуске имеет ограничение на использование только 1 ядра.
- 1 — 1 ядро.
- 3 — 2 ядра.
- 7 — 3 ядра.
- F — 4 ядра.
- 1F — 5 ядер.
- 3F — 6 ядер.
- 7F — 7 ядер.
- FF — 8 ядер.
start /affinity 7 C:\Windows\System32\mspaint.exe
- Кликаем по имени процесса в «Диспетчере задач» и выбираем пункт «Открыть расположение файла» (программу предварительно нужно запустить):
- Откроется «Проводник» с выделенным файлом. Копируем путь до него в адресной строке, добавляем «\» и следом вписываем имя файла с указанием расширения «.exe».
- Загрузка процессора — программы и советы
- Программы для проверки процессоров
- Что такое троттлинг процессора?
У меня есть программа для вычислений, есть 1 проблема — она работает на одном ядре и заполняет его на 100%, не трогая остальные ядра, сама программа может работать только в 1 потоке (Вычисления нельзя делать асинхронно). Я же хочу что бы она работала на всех ядрах (Можно и без полной работы, хотя бы 200% на всех ядрах), искал в инете инфу — везде разная, но ни один метод не сработал. Может у кого такая проблема была? Можете помочь.