Выжимаем производительность, правильно распределяя потоки
Не следует думать, что двухпроцессорная система на 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” для текущих приложений. Всё, что нужно, – двойной щелчок мыши.
Для постоянной привязки вам необходимо перейти на закладку “Application Profiles”. Здесь вы можете указать, какие приложения будут иметь одну и ту же привязку при запуске. Сначала внесите программу в список. Для этого введите имя файла или выберите его с помощью клавиши “Browse”. Если вы нажмёте “Add”, то перед добавлением в список нужно будет задать привязку процессоров.
Если утилита THG Task Assignment Utility выполняется в системе, то привязка приложений будет осуществляться автоматически.
Добавляем программу в список.
Выбираем CPU.
В нашем тестировании мы покажем, как утилита влияет на скорость работы приложений. Мы запускали приложения с автоматическим распределением процессоров Windows, с отключением Hyper-Threading, а также с утилитой THG Task Assignment Manager. При запуске тестов параллельно с утилитой THG мы использовали стандартные настройки для всех остальных процессов, а тестовое приложение привязывали только к физическим CPU (CPU0 и CPU1).
Тестовая конфигурация
Процессоры Intel (Socket 604) | |
133 МГц FSB (533 МГц QDR) | Intel Xeon 3,06 ГГц (3066 МГц, 12-8/512 кбайт) |
Материнская плата | |
Intel E7505 | MSI MS-9141 (E7505 Master2) Rev.1 Bios 1.1B7 (10/07/03) |
Память | |
DDR400 (200 МГц) | 2 x 512 Мбайт / 5 нс/ 64 бит(Corsair) CMX512-3200LL (CL 2,0-3-2-6) |
Общее аппаратное обеспечение | |
Звуковая карта | Terratec Aureon 7.1 Space 96,00 кГц |
Графическая карта | Asus A9800XT/TVD, Rev. 1.01 GPU: ATi Radeon 9800XT, 412 МГц Память: 256 Мбайт DDR-SDRAM, 365 МГц |
Жёсткий диск | FastTrak S150 TX2plus (Bios: 1.00.0.30) 2 x SATA Maxtor 6Y080M0 (Raid 0) 80 Гбайт/ кэш 8 Мбайт/ 7200 об/мин |
DVD/CD-ROM | MSI MS-8216 16x DVD |
Программное обеспечение | |
Чипсет | Chipset Installation Utility Ver. 5.1.1.1002 IAA RAID Edition 3.5.3 |
Графическая карта | ATi Catalyst XP 4.3 (Driver 6.14.10.6430) |
Promise RAID | 1.00.0.37 |
DirectX | Версия: 9b |
ОС | Windows XP, Build 2600 SP1 |
Программная конфигурация
Тесты и настройки | |
DirectX 9a | |
3DMark 2003 | Version 3.4.0 Graphics and CPU Default Benchmark 1024 x 786 – 32 bit |
Video | |
Mainconcept MPEG Encoder | Version 1.4.1 1.2 GB DV to MPEG II (720×576, Audio) converting |
Pinnacle Studio 9 | Version: 9.0.0 Rendering – DVD Compatible no Audio |
Windows Media Encoder 9 | Version: 9.00.00.2980 436 MB AVI File conversion to WMV Windows Media Server (Streaming) |
Microsoft Movie Maker | Version 2.0.3312.0 416 MB DV to WMV |
TMPGEnc Plus | Version 2.521 1.2 GB DV to MPEG I (720×576, Audio) converting |
Audio | |
magix mp3 maker 2004 | Version 4.11 Build 19593 |
diamond | 65 minutes/44.100 KHz wave file (688,4 MB) Format: MP3 High Quality |
Syntrillum Cool Edit Pro | Version 2.1 Amplitude Normalizing 2.6 GB Wave Audio file |
Applications | |
Discreet | Characters “Dragon_Charater_rig” |
3D Studio Max 6.0 | Rendering Single, 1024×768 |
Winrar | Version 3.30 238 MB, 246 Files Compression = Best Dictionary = 4096 MB |
Newtek Lightwave | Version 7.5c – Build 572 Render First Frame = 1 Render Last Frame = 60 Render Frame Step = 1 Rendering Bench “variation.lws” Show Rendering in Progress = 320×240 Ray Trace Shadows, Reflection, Refraction, Transparency = on Multithreading = 8 Threads |
Maxon Cinema 4D XL 8 | Version 8.503 Rendering in 1024×768, “ship_dirt” |
LIUtilities WinBackup | Version 1.84 650 MB Wave file Encryption: 256 Bit DES, Password “test” |
Synthetic | |
PCMark 2004 Pro | Build 1.1.0 CPU and Memory Tests |
SiSoftware Sandra 2004 | Version 2004.10.9.89 CPU Test: CPU Multimedia / CPU Arithmetic Memory Test: Memory Bandwidth Benchmark |
Результаты тестирования: когда утилита помогает, а когда – нет?
Звук
Видео
Приложения
Синтетические тесты
Синтетические тесты – DirectX 9
Заключение
Как вы можете видеть, тесты показывают увеличение производительности при использовании утилиты THG на некоторых приложениях. И хотя тесты дают выигрыш в несколько секунд, но если мы возьмём сутки прогона какой-либо программы, то экономия получается в пару часов.
В то же время, некоторые приложения могут работать медленнее. Вам придётся самостоятельно исследовать, как утилита влияет на вашу ситуацию. Единственный путь здесь – проб и ошибок.
Утилита THG с автоматической привязкой процессоров будет наиболее полезна, если вы одновременно запускаете два приложения без поддержки HT.