Выжимаем производительность, правильно распределяя потоки



Не следует думать, что двухпроцессорная система на 3-ГГц Xeon будет работать так же, как и 6-ГГц компьютер. Для улучшения производительности операционная система и приложения должны поддерживать симметричную многопроцессорность (SMP) или технологию Hyper-Threading (HT). К тому же, встроенные в операционную систему функции распределения потоков не всегда оказываются эффективными.

Лаборатория Tom's Hardware Guide разработала утилиту, позволяющую распределять потоки вручную. Как показали результаты тестов, с помощью этой утилиты ваша двухпроцессорная система может достичь ещё более высокого уровня производительности.

Скачать утилиту можно по следующему адресу: THG Task Assignment Manager

Если ваши приложения уже оптимизированы под многопроцессорность, то утилита будет не особо полезной. Вы можете получить прирост производительности на многопроцессорной системе, если вы одновременно запускаете несколько приложений без поддержки SMP. К примеру, во время сжатия фильма в формате MPEG2 с помощью MainConcept второй процессор может заниматься офисными приложениями или путешествием по Интернету.

Не всегда удобный: Windows Task Manager

Данный раздел посвящён недостаткам диспетчера задач Microsoft и преимуществам утилиты THG. Сначала давайте посмотрим на Task Manager в Windows XP, который уже позволяет осуществлять ручное распределение задач.

Если ваша система относится к HT/SMP, то выберите закладку "Processes/Процессы" в Task Manager и нажмите правой клавишей на название программы. Появится опция "Set Affinity", которая позволяет выбирать процессор, используемый программой.


Установка привязки к процессорам в Windows Task Manager.


Диалог выбора CPU.

Технология 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" для текущих приложений. Всё, что нужно, - двойной щелчок мыши.

 

Copyright @ by Lehach, 2009