|
Выжимаем производительность, правильно распределяя потоки
Не следует думать, что двухпроцессорная система на 3-ГГц Xeon будет работать так же, как и 6-ГГц компьютер. Для улучшения производительности операционная система и приложения должны поддерживать симметричную многопроцессорность (SMP) или технологию Hyper-Threading (HT). К тому же, встроенные в операционную систему функции распределения потоков не всегда оказываются эффективными.
Лаборатория Tom's Hardware Guide разработала утилиту, позволяющую распределять потоки вручную. Как показали результаты тестов, с помощью этой утилиты ваша двухпроцессорная система может достичь ещё более высокого уровня производительности.
Скачать утилиту можно по следующему адресу:
Если ваши приложения уже оптимизированы под многопроцессорность, то утилита будет не особо полезной. Вы можете получить прирост производительности на многопроцессорной системе, если вы одновременно запускаете несколько приложений без поддержки SMP. К примеру, во время сжатия фильма в формате MPEG2 с помощью MainConcept второй процессор может заниматься офисными приложениями или путешествием по Интернету.
Не всегда удобный: Windows Task Manager
Данный раздел посвящён недостаткам диспетчера задач Microsoft и преимуществам утилиты THG. Сначала давайте посмотрим на Task Manager в Windows XP, который уже позволяет осуществлять ручное распределение задач.
Если ваша система относится к HT/SMP, то выберите закладку "Processes/Процессы" в Task Manager и нажмите правой клавишей на название программы. Появится опция "Set Affinity", которая позволяет выбирать процессор, используемый программой.
Технология Hyper-Threading может дать небольшой прирост производительности на соответствующих приложениях. Некоторые программы получают существенный прирост от HT, в то время как другие начинают работать медленнее. Радикальное решение - отключение HT в BIOS - может привести к заметному падению общей системной производительности. Windows XP оптимизирована под HT и отключение этой опции существенно замедляет систему. Решением может стать отключение HT для выбранных программ. Поскольку процессор с HT в системе виден как два обычных CPU, нужно просто привязать программу к нужному процессору. Другими словами, программа тогда не будет использовать второй логический процессор.
Возникает вопрос: а какой процессор из двух физический, а какой - виртуальный?
И вновь решение достаточно простое. Windows всегда следует одной и той же последовательности при подсчёте процессоров: сначала идут физические, а затем виртуальные. В системе с двумя процессорами Xeon HT CPU0 и CPU1 являются физическими, а CPU2 и CPU3 - виртуальными.
Поэтому для того, чтобы отключить HT на первом CPU в двухпроцессорной системе Xeon для определённой программы, вам нужно просто убрать галочку у третьего CPU (CPU2).
Ещё проще: THG Task Assignment Manager
При всём при этом немалую головную боль доставляют периодически запускаемые приложения. К сожалению, Windows не запоминает последние настройки, поэтому колесо приходится изобретать при каждом запуске программы. К тому же, некоторые приложения, запускающиеся в полноэкранном режиме, вообще не позволяют ничего регулировать. Некоторые подобные программы просто "вылетают" при переключении в оконный режим.
Мы предлагаем использовать нашу утилиту THG Task Assignment Manager. Она специально предназначена для подобных сценариев и позволяет определять профили, чтобы ваши любимые приложения всегда имели одну и ту же привязку к процессорам. Даже те приложения, которые блокируют доступ в оболочку Windows, теперь можно привязывать к процессорам.
Утилиту использовать очень легко. После запуска вы можете изменять привязку процессоров в закладке "Select Application and Assign" для текущих приложений. Всё, что нужно, - двойной щелчок мыши.
Для постоянной привязки вам необходимо перейти на закладку "Application Profiles". Здесь вы можете указать, какие приложения будут иметь одну и ту же привязку при запуске. Сначала внесите программу в список. Для этого введите имя файла или выберите его с помощью клавиши "Browse". Если вы нажмёте "Add", то перед добавлением в список нужно будет задать привязку процессоров.
Если утилита THG Task Assignment Utility выполняется в системе, то привязка приложений будет осуществляться автоматически.
В нашем тестировании мы покажем, как утилита влияет на скорость работы приложений. Мы запускали приложения с автоматическим распределением процессоров Windows, с отключением Hyper-Threading, а также с утилитой THG Task Assignment Manager. При запуске тестов параллельно с утилитой THG мы использовали стандартные настройки для всех остальных процессов, а тестовое приложение привязывали только к физическим CPU (CPU0 и CPU1).