Назначение логических процессоров определенной программе в Windows 7 и Windows 8
Указанные функции работают в Windows 7, Windows 8 и Windows Vista. О последней я не говорю, так как ее мало кто использует у нас в стране.
Запустите Диспетчер Задач Windows и:
- В Windows 7 откройте вкладку «Процессы»
- В Windows 8 откройте «Подробности»
Кликните правой клавишей мыши по интересующему Вас процессу и выберите в контекстном меню пункт «Задать сходство». Появится окно «Соответствие процессоров», в котором Вы можете указать, какими ядрами процессора (или, вернее, логическими процессорами) программе разрешено пользоваться.
Вот и все, теперь процесс использует только те логические процессоры, которые ему разрешили. Правда происходит это ровно до следующего его запуска.
Как запустить программу на определенном ядре процессора (логическом процессоре)
В Windows 8 и Windows 7 имеется также возможность запустить приложение так, чтобы сразу после запуска оно использовало определенные логические процессоры. Для того, чтобы сделать это, запуск приложения нужно осуществлять с указанием соответствия в параметрах. Например:
c:windowssystem32cmd.exe /C start /affinity 1 software.exe
В этом примере будет запущено приложение software.exe с использованием 0-го (ЦП 0) логического процессора. Т.е. цифра после affinity указывает номер логического процессора + 1. Эту же команду Вы можете записать в ярлык приложения, чтобы оно всегда запускалось с использованием определенного логического процессора. К сожалению, мне не удалось найти информации, как передать параметр таким образом, чтобы приложение использовало не один логический процессор, а сразу несколько.
UPD: нашел как запустить приложение на нескольких логических процессорах с помощью параметра affinity. Указываем маску в шестнадцатеричном формате, например требуется использовать процессоры 1, 3, 5, 7, соответственно, это будет 10101010 или 0xAA, передаем в виде /affinity 0xAA.