Управление загрузкой процессоров в операционных системах Windows 2000 и более поздних

Автор Lexx-R ( май 2006 г. )

На данный момент материал представляет, в основном, исторический интерес ...


 Общее описание

 Установка и настройка ThreadMaster

 О ключах реестра

 Использование TreadMaster в распределенных вычислениях на Boinc

 Заключение

 Перечень расчетных модулей для ОС Windows некоторых проектов

 

 

Общее описание

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

Ну, например:

·        Сильный нагрев процессора при постоянном использовании его на 100% (особенно актуально для ноутбуков);

·        Просто негативное моральное ощущение при виде процесса, который полностью загружает  процессор, в списке процессов (клавиши Ctr+Alt+Del / Диспетчер задач / Процессы);

·        Не желание «светить» расчет распределенного проекта перед другими пользователями компьютера, которых может насторожить постоянная 100% загрузка процессора;

·        Другие причины, важные для конкретного компьютера и/или пользователя.

К сожалению, стандартные средства операционной системы Windows не позволяют регулировать загрузку процессора различными приложениями (программами), выполняемыми на ней. Так же не секрет, что на большинстве компьютеров в России установлена операционная система Windows, которая обладает рядом прочих преимуществ. Так что возможность управления загрузкой процессора компьютера под управлением ОС Windows вполне актуальна.

Под термином управление загрузкой процессора понимается возможность установки ограничения для конкретных программ на использование ресурсов процессора не более чем на Х % .

Специально для управления загрузкой процессора в ОС Windows была разработана программа ThreadMaster.

 

Установка и настройка ThreadMaster

Программа TreadMaster работает на операционных системах Windows 2000 и более поздних (Windows XP, Windows 2003). Безусловным преимуществом данной программы перед ее аналогами является: небольшой размер (архив - всего 34 Кб !!!), простота установки, использования и, при необходимости, удаления. При этом с возложенными на нее функциями она справляется очень не плохо.

Программу ThreadMaster можно скачать здесь -> Download  (к сожалению, на данный момент ссылка не работает)

Программку удаления можно скачать на той же странице: маленькая ссылка под основной.

 

Устанавливается программа очень просто:

  1.  Распаковывается архив;

  2.  Запускается файл Install.cmd.

Все. Ни какого выбора пути установки, лицензионных соглашений и прочего не требуется. Все пройдет автоматически. ThreadMaster, устанавливается в качестве сервиса операционной системы.

Удаление производится запуском файла: «uninst.cmd» (скачать его нужно отдельно, так как он не входит в основной архив).

Для настройки программы тоже нет специального интерфейса. Вся настройка ведется путем изменения соответствующих ключей реестра Windows. Редактор реестра вызывается следующим образом: «Пуск» / «Выполнить» в открывшемся окне набираете «regedit» и нажимаете «Ок».

 

Теперь о ключах реестра.

Все параметры, которые необходимо корректировать находятся в реестре по адресу:

для Windows XP:

                               «HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\ThreadMaster\»

для Windows 2000:

                               «HKEY_LOCAL_MACHINESYSTEM\CurrentControlSet\Services\ThreadMaster\»

 

Далее по указанным путям в реестре находятся следующие важные группы записей:

«Parameters» - Основные параметры программы. Для данной группы определены следующие основные ключи реестра:

            CPUThresholdPct – максимальная загрузка процессора (в %) на 1 приложение.  Это глобальная настройка программы и действует для всех запущенных приложений, кроме приложений для которых определены уникальные настройки в ключах «Applications» или «Exceptions». Это означает, что каждый процесс, кроме указанных в ключах «Applications» и «Exceptions» не может использовать более, чем указанно в этом параметре, процента загрузки процессора. Возможный интервал значения: от 3 до 100. По умолчанию стоит 15 %.

            MainSampleTimeэтот ключ задает отрезок времени, в течение которого будет производиться усредненный анализ загрузки процессора процессом. Значение параметра определяется в интервале от 10 до 100 (секунды). По истечения этого времени после запуска любых процессов они не будут ограничиваться до значения CPUThresholdPct, либо указанного значения в «Applications».

            «Parameters \ Applications» - в данном разделе хранится список приложений, которые нужно ограничить значением загрузки процессора (в %) отличным от значения, указанного в CPUThresholdPct. Значение может варьироваться от 1 до 100. Для этого в этом разделе нужно создать строковый параметр, в котором в качестве имени указать имя процесса, т.е. название процесса, отображаемое в списке процессов (например: «word.exe», «1cv77.exe» и т.п.). В качестве значения параметра указать число - % разрешенной загрузки процессора для этого приложения (процесса).

«Parameters \ Exceptions» - в данном разделе указывается список процессов, которые не ограничиваются по загрузке процессора, т.е. список исключений по ограничению. На процессы, перечисленные в этом разделе, не накладываются ограничения указанные как в ключе CPUThresholdPct, так и «Parameters \ Applications». Хотя одновременное включение процесса в списки «Applications» и «Exceptions», лучше не проводить! При этом после установке в данном разделе уже перечислены системные процессы, которые не ограничиваются в использовании ресурсов процессора для корректного функционирования операционной системы. Исключать эти процессы из списка небезопасно! В этот раздел рекомендуется добавлять такие приложения, как, например, антивирусные программы.

 

Важно! Для мультипроцессорных систем устанавливать значение % ограничения загрузки процессора, как в параметре «CPUThresholdPct», так и «Applications» меньше, чем количество процессоров в системе (вместе с виртуальными) небезопасно, это может грозить как сильным замедлением выполнения процесса, так и несрабатыванием ограничения по загрузке процессора.

 

Важно! Так же следует отметить, что все изменения в настройках программы вступают в силу только после перезапуска сервиса TreadMaster  в списке сервисов компьютера (Пуск / Настройка / Панель управления / Администрирование / Службы, в открывшемся списке служб найти  ThreadMaster, нажать на ней правой кнопкой мыши и в открывшемся меню выбрать «Перезапустить»).

 

Использование TreadMaster в распределенных вычислениях на Boinc

 Если с настройками программы ThreadMaster все понятно, то перейдем к описанию ее корректной настройки при использовании для ограничения загрузки процессора проектами распределенных вычислений. Тут возможно несколько вариантов, в зависимости от того, для чего конкретно Вы будете использовать возможности программы. Ниже я приведу несколько типовых настроек для разных вариантов использования.

 

Для начала отмечу, что в любом случае процесс «boinc.exe» необходимо добавить в список процессов, для которых ресурсы процессора не ограничены: «Parameters \ Exceptions». Это необходимо для того чтоб при выполнении теста производительности компьютера Boinc не выдал заниженные результаты.

 

Теперь о том, что нужно ограничивать. Ограничивать нужно расчетный модуль проекта, т.е. тот процесс, которые непосредственно считает и занимает ресурсы процессора. В конце статьи я приведу список, используемых сейчас расчетных модулей для разных проектов. Следует отметить, что по истечении времени этот список может меняться, в связи с выходом новых версий расчетных модулей. Увидеть название модуля, который занимается расчетом можно в списке процессов, запущенных на компьютере. При этом при ограничении время расчета задания, отражаемое в Boinc, не изменятся. Т.е. если при использовании 100% ресурсов процессора задание рассчитывалось за 1 час, то после установки ограничения в 50 %, задание будет рассчитывать приблизительно за 2 часа, но Boinc будет отображать время расчета 1 час (т.е. реально потрачен 1 час времени процессора при загрузке 100%). Таким образом, на получаемые очки в проектах, в которых они зависят от времени расчета, это никак не отразится.

 

Есть еще одна тонкость. В случае использования ThreadMaster на многопроцессорных системах (в независимости от того виртуальные эти процессоры или реальные) максимальная загрузка процессора рассчитывается как 100 / «количество процессоров». Т.е. для 2-х процессорного компьютера указание ограничения в 75 % не имеет смысл, так как максимально для одного приложения может быть использовано 50-55 (в пике) % ресурса процессора. И для того чтоб использовать процессор на 50 % необходимо указать 25%.

И еще одна особенность программы, выявленная опытным путем. В случае, если в параметре «CPUThresholdPct» указать значение 100 (для 1 процессорного компьютера) или 50 и более (для  2-х процессорного компьютера), то ограничения, указанные в списке: «Parameters \ Applications» для конкретных приложений не действуют, т.е. использование ресурсов процессора для процессов не ограничиваются. Для того чтоб ресурсы процессора ограничивались для процессов, указанных в «Parameters \ Applications», необходимо установить в параметре «CPUThresholdPct» значение 48 (для 2-х процессорного компьютера) и 96 (для однопроцессорного компьютера). Данные значения выведены опытным путем. При этом следует отметить, что все процессы будут ограничены в использовании процессора до этого значения. Если для каких-либо приложений (процессов) 2-4 % процессора критичны, то тогда рекомендуется добавить эти процессы в список: «Parameters \ Exceptions» или в список «Parameters \ Applications» с указанным ограничением 100.

 

Примеры настроек в распределенных вычислениях для нескольких вариантов ограничений:

1.            Необходимо, чтоб компьютер работал как обычно, а ограничивался только расчетный модуль проекта на использование Х % процессора (здесь может быть любой другой процент).

2.            Любой процесс, запущенный на компьютере, должен использовать не более Х % процессора.

3.            Необходимо, чтоб до часа Х считал на все 100 %, а после часа Х на Y %.

 

Для варианта 1: параметр «CPUThresholdPct» устанавливаем в 48 или 96 (в зависимости от количества процессоров). В список «Parameters \ Applications» добавляем расчетный модуль, который необходимо ограничивать, и для него устанавливаем значение Х.

Для варианта 2: параметр «CPUThresholdPct» устанавливаем в Х / 2 или Х (в зависимости от количества процессоров).

Для варианта 3: параметр «CPUThresholdPct» устанавливаем в 48 или 96 (в зависимости от количества процессоров). Далее лучше поступить так: добавить в список «Parameters \ Applications» добавить название расчетного модуля проекта и указать для него значение ограничения 100, т.е. не ограничивать. Сохранить ключ реестра «Parameters \ Applications» в файл (Файл / Экспорт) (допустим файл «100_процентов»). Затем задать указать для расчетного модуля ограничение Y и так же сохранить в файл (допустим «Y_процентов»). До часа X запускаем файл «100_процентов» (он спросит о Вашей уверенности совершить это действие, согласитесь с ним) и перезапускаем сервис (можно перезагрузить компьютер). Все проект использует все доступные ресурсы процессора. После наступления часа X запускаем файл «Y_процентов» и перезапускаем сервис (можно перезагрузить компьютер). Все по прошествии секунд, указанных в «MainSampleTime» проект будут использовать только Y ресурсов процессора.

 

Заключение

Как Вы понимаете, ThreadMaster позволит Вам использовать любые другие варианты распределения загрузки процессор.  А так же может помочь в решении задач загрузки процессора не только в распределенных вычислениях, а, например, на терминальном сервере.

Так же ThreadMaster позволяет вести лог-файл по ограничиваемым процессам: количество ограничений, время ограничения процесса. Более подробно об этом можно прочитать в справке программы. Или по этому адресу: http://www.klerk.ru/soft/1c/?14943

 

В качестве материалов для написания статьи были использованы следующие источники:

1. http://www.klerk.ru/soft/1c/?14943

2. http://threadmaster.tripod.com/

 

Во время написания данной статьи распространение стала получать программа BoincStudio, которая служит для управления проектами и компьютерами в распределенных вычислениях на платформе Boinc. Данная программа так же имеет возможность ограничивать загрузку процессора расчетным модулем. Однако, в отличие от ThreadMaster, ограничение задается одинаковое для всех проектов, запущенных на компьютере. А ThreadMaster позволяет установить уникальные ограничения для каждого процесса.

 

 

Перечень расчетных модулей для ОС Windows некоторых проектов по состоянию на 22 мая 2006 года:

Einstein:

    albert_4.37_windows_intelx86.exe

LHC:

    Sixtrack_4.67_windows_intelx86.exe

ROSETTA:

    rosetta_4.82_windows_intelx86.exe

    rosetta_4.83_windows_intelx86.exe

    rosetta_5.16_windows_intelx86.exe

CPDN:

    hadcm3trans_5.08_windows_intelx86.exe

FIGHTAIDS:

    wcg_faah_autodock_5.09_windows_intelx86.exe

PREDICTOR:

    mfoldB125_4.28_windows_intelx86.exe

HashClash:

    md5birthday8192_4.03_windows_intelx86.exe

SZTAKI:

    search_1.12_windows_intelx86.exe

Прочие проекты:

    simap_5.07_windows_intelx86.exe

    primegen_5.12_windows_intelx86.exe

    malariacontrol_5.28_windows_intelx86

    primegen_5.13_windows_intelx86.exe

    Amolqc-alpha_5.06_windows_intelx86.exe

    evolver_4.02_windows_intelx86.exe

    xtremlab.exe


Назад на главную страницу BOINC.RU