У дома / Разни / Поддръжка на технологията за хипер резба. Hyper-Threading технология от Intel. Производителността никога не е достатъчна

Поддръжка на технологията за хипер резба. Hyper-Threading технология от Intel. Производителността никога не е достатъчна

Потребителите, които поне веднъж са конфигурирали BIOS, вероятно вече са забелязали, че има параметър Intel Hyper Threading, който е неразбираем за мнозина. Мнозина не знаят каква е тази технология и за каква цел се използва. Нека се опитаме да разберем какво е Hyper Threading и как можете да активирате използването на тази поддръжка. Също така ще се опитаме да разберем какви предимства дава на компютъра. тази настройка. По принцип тук няма нищо трудно за разбиране.

Intel Hyper Threading: какво е това?
Ако не навлизате дълбоко в джунглата на компютърната терминология, а я кажете на прост език, тогава тази технологияе проектиран да увеличи потока от команди, обработвани едновременно от процесора. Съвременните процесорни чипове, като правило, използват само 70% от наличните изчислителни възможности. Останалото остава, така да се каже, в резерв. Що се отнася до обработката на потока от данни, в повечето случаи се използва само една нишка, въпреки факта, че системата използва многоядрен процесор.

Основни принципи на работа
С цел повишаване на възможностите на централния процесор е разработена специална технология Hyper Threading. Тази технология улеснява разделянето на един команден поток на две. Възможно е също да добавите втори поток към съществуващ. Само такъв поток е виртуален и не работи на физическо ниво. Този подход ви позволява значително да увеличите производителността на процесора. Съответно цялата система започва да работи по-бързо. Увеличението на производителността на процесора може да варира доста. Това ще бъде обсъдено отделно. Самите разработчици на технологията Hyper Threading обаче твърдят, че тя не достига до пълноценно ядро. В някои случаи използването на тази технология е напълно оправдано. Ако знаете същността на процесорите Hyper Threading, тогава резултатът няма да закъснее.

Справка по история
Нека се потопим малко в историята на това развитие. Поддръжката за Hyper Threading за първи път се появи само в процесорите Intel Pentium 4. По-късно внедряването на тази технология беше продължено в серията Intel Core iX (X означава серия процесори тук). Трябва да се отбележи, че по някаква причина той отсъства в линията на процесорните чипове Core 2. Вярно е, че тогава увеличението на производителността беше доста слабо: някъде на ниво от 15-20%. Това показва, че процесорът няма необходимата процесорна мощност и създадената технология на практика изпреварва времето си. Днес поддръжката за технологията Hyper Threading вече е налична в почти всички съвременни чипове. За да увеличи мощността на централния процесор, самият процес използва само 5% от кристалната повърхност, като същевременно оставя място за обработка на команди и данни.

Въпрос на конфликти и представяне
Всичко това със сигурност е добре, но в някои случаи при обработка на данни може да има забавяне на работата. Това се дължи най-вече на така наречения модул за прогнозиране на клонове и недостатъчния размер на кеша, когато той постоянно се презарежда. Ако говорим за основния модул, тогава в този случайситуацията се развива по такъв начин, че в някои случаи първата нишка може да изисква данни от втората, които може да не бъдат обработени в този момент или са на опашката за обработка. Също така, не по-малко чести са ситуациите, когато централното ядро ​​на процесора има много сериозно натоварване, а основният модул, въпреки това, продължава да изпраща данни към него. Някои програми и приложения, като например ресурсоемки онлайн игри, могат сериозно да се забавят само защото им липсва оптимизация за използването на технологията Hyper Threading. Какво се случва с игрите? Компютърната система на потребителя от своя страна се опитва да оптимизира потоците от данни от приложението към сървъра. Проблемът е, че играта не знае как да разпространява независимо потоци от данни, изхвърляйки всичко в един куп. Като цяло може просто да не е проектиран за това. Понякога при двуядрените процесори увеличението на производителността е значително по-високо, отколкото при 4-ядрените. Те просто нямат процесорна мощност.

Как да активирам Hyper Threading в BIOS?
Вече разбрахме малко за това какво представлява технологията Hyper Threading и се запознахме с историята на нейното развитие. Дойдохме близо до разбирането какво представлява технологията Hyper Threading. Как да активирам тази технология за използване в процесора? Тук всичко се прави доста просто. Трябва да използвате подсистемата за управление на BIOS. Подсистемата се влиза с клавишите Del, F1, F2, F3, F8, F12, F2+Del и др. Ако използвате лаптоп Sony Vaio, тогава те имат специфичен вход, когато използвате специалния клавиш ASSIST. В настройките на BIOS, ако процесорът, който използвате, поддържа технологията Hyper Threading, трябва да има специален ред за настройка. В повечето случаи изглежда като Hyper Threading Technology, а понякога изглежда като функция. В зависимост от разработчика на подсистемата и версията на BIOS, настройката на този параметър може да се съдържа или в главното меню, или в разширените настройки. За да активирате тази технология, трябва да влезете в менюто с опции и да зададете стойността на Enabled. След това трябва да запазите направените промени и да рестартирате системата.

Защо Hyper Threading е полезен?
В заключение бих искал да говоря за предимствата, които предоставя използването на технологията Hyper Threading. за какво е всичко това? Защо е необходимо да се увеличи мощността на процесора при обработка на информация? Тези потребители, които работят с ресурсоемки приложения и програми, не е необходимо да обясняват нищо. Много хора вероятно знаят, че графичните, математическите, дизайнерските софтуерни пакети изискват много системни ресурси в процеса на работа. Поради това цялата система се натоварва толкова много, че започва да се забавя ужасно. За да предотвратите това да се случи, се препоръчва да активирате поддръжката на Hyper Threading.

Много процесори на Intel включват модули с Хипер поддръжка-Threading Technology, която, в съответствие с идеята на разработчиците, трябва да помогне за увеличаване на производителността на чипа и ускоряване на компютъра като цяло. Каква е спецификата на това решение от американска корпорация? Как можете да се възползвате от Hyper-Threading?

Основи на технологиите

Нека да разгледаме основните подробности за Hyper-Threading. Каква е тази технология? Той е разработен от Intel и за първи път е представен на обществеността през 2001 г. Целта на създаването му е да се повиши производителността на сървърите. Основният принцип, приложен в Hyper-Threading, е разпределението на изчисленията на процесора към няколко нишки. Освен това, това е възможно, дори ако само едно ядро ​​е инсталирано на съответния тип микросхема (от своя страна, ако има 2 или повече от тях и нишките в процесора вече са разпределени, технологията успешно допълва този механизъм).

Осигуряването на работата на главния компютърен чип в рамките на няколко нишки се осъществява чрез създаване на копия на архитектурни състояния в хода на изчисленията. В този случай се използва същият набор от ресурси на чипа. Ако приложението използва подходящата способност, тогава практически значителните операции се извършват много по-бързо. Също така е важно въпросната технология да се поддържа от входно/изходната система на компютъра – BIOS.

Активиране на Hyper-Threading

Ако процесорът, инсталиран в компютъра, поддържа съответния стандарт, той обикновено се активира автоматично. Но в някои случаи трябва ръчно да извършите необходимите действия, за да работи технологията Hyper-Threading. Как да го активирам? Много просто.

Трябва да влезете в основния интерфейс на BIOS. За да направите това, в самото начало на зареждането на компютъра, трябва да натиснете DEL, понякога - F2, F10, по-рядко - други клавиши, но желаният винаги се появява в един от редовете с текст, показан на екрана веднага след включване на компютъра. В интерфейса на BIOS трябва да намерите елемента Hyper-Threading: във версиите на I / O системата, които го поддържат, той обикновено се намира на видно място. След като изберете подходящата опция, трябва да натиснете Enter и да я активирате, като я маркирате като Enabled. Ако този режим вече е зададен, тогава технологията Hyper-Threading работи. Можете да използвате всичките му предимства. След като активирате технологията в настройките, трябва да запишете всички записи в BIOS, като изберете Save and Exit Setup. След това компютърът ще се рестартира в режим, когато процесорът работи с поддръжка на Hyper-Theading. По същия начин Hyper-Threading е деактивиран. За да направите това, изберете друга опция в съответния елемент - Disabled и запазете настройките.

След като проучихме как да активираме Hyper-Threading и да деактивираме тази технология, нека разгледаме по-отблизо нейните характеристики.

Процесори с поддръжка на Hyper Threading

Първият процесор, върху който е реализирана концепцията на компанията, според някои източници е Intel Xeon MP, известен още като Foster MP. Този чип е подобен в редица архитектурни компоненти на Pentium 4, който също по-късно внедри въпросната технология. Впоследствие функцията за многонишкови изчисления беше внедрена на сървърни процесори Xeon с ядрото на Prestonia.

Ако говорим за сегашното разпространение на Hyper-Threading – кои „професионалисти“ го поддържат? Сред най-популярните чипове от този тип са тези, които принадлежат към семействата Core и Xeon. Има и информация, че подобни алгоритми са внедрени в процесори като Itanium и Atom.

След като проучихме основната информация за Hyper-Threading, процесори с неговата поддръжка, нека разгледаме най-забележителните факти за историята на развитието на технологията.

История на развитие

Както отбелязахме по-горе, Intel показа въпросната концепция на обществеността през 2001 г. Но първите стъпки в създаването на технологията са направени в началото на 90-те години. Инженерите на американската компания забелязаха, че ресурсите на процесорите на компютъра не се използват пълноценно при извършване на редица операции.

Както изчислиха експертите на Intel, по време на работа на потребителя на компютър, микросхемата не се използва активно за значителни интервали - почти през повечето време - с около 30%. Мненията на експертите относно тази цифра са много различни - някой я смята за явно подценен, други са напълно съгласни с тезата на американските разработчици.

Повечето ИТ специалисти обаче се съгласиха, че дори и не 70% от капацитета на процесора е празен, а много значително количество от тях.

Основната задача на разработчиците

Intel реши да коригира това състояние на нещата чрез качествено нов подход за осигуряване на ефективността на основните чипове за компютър. Беше предложено да се създаде технология, която да допринесе за по-активно използване на възможностите на процесорите. През 1996 г. специалистите на Intel започват практическото му развитие.

Според концепцията на американска корпорация процесорът, обработващ данни от една програма, може да насочи неактивни ресурси към работа с друго приложение (или компонент на текущото, но с различна структура и изискващ използване на допълнителни ресурси). Съответният алгоритъм също предполага ефективно взаимодействие с други хардуерни компоненти на компютъра - RAM, чипсет и програми.

Intel успя да реши проблема. Първоначално технологията се наричала Willamette. През 1999 г. той беше въведен в архитектурата на някои процесори и започнаха тестовете му. Скоро технологията получи съвременното си име - Hyper-Threading. Трудно е да се каже какво точно беше - обикновено ребрандиране или фундаментални корекции на платформата. Вече знаем други факти относно публичното появяване на технологията и нейното внедряване в различни модели процесори на Intel. Сред разпространените днес имена за разработка е Hyper-Threading Technology.

Аспекти на съвместимост с технологията

Колко добре е внедрена поддръжката за технологията Hyper-Threading в операционните системи? Може да се отбележи, че ако говорим за модерни Версии на Windows, тогава няма да има проблеми за потребителя да използва напълно предимствата на технологията Intel Hyper-Threading. Разбира се, също така е много важно I/O системата да поддържа технологията - говорихме за това по-горе.

Софтуерни и хардуерни фактори

По отношение на по-старите версии на ОС - Windows 98, NT и относително остарялата XP, необходимо условие за съвместимост с Hyper-Threading е поддръжката на ACPI. Ако не е внедрен в ОС, тогава не всички изчислителни потоци, които се формират от съответните модули, ще бъдат разпознати от компютъра. Имайте предвид, че Windows XP като цяло предоставя предимствата на тази технология. Също така е силно желателно многонишковите алгоритми да бъдат внедрени в приложения, използвани от собственика на компютъра.

Понякога може да се нуждаете от компютър - ако инсталирате процесори с поддръжка на Hyper-Threading на него вместо тези, които първоначално са били инсталирани на него и не са съвместими с технологията. Въпреки това, както в случая с операционните системи, няма да има особени проблеми, ако потребителят има модерен компютър или поне съответните хардуерни компоненти към първите Hyper Threading процесори, както отбелязахме по-горе, внедрени в Core линията и адаптирани към него чипсетите на дънните платки напълно поддържат съответните функции на чипа.

Критерии за ускорение

Ако компютърът на ниво хардуерни и софтуерни компоненти не е съвместим с Hyper-Threading, тогава тази технология на теория може дори да забави работата му. Това състояние на нещата накара някои ИТ специалисти да се съмняват в перспективите на решението от Intel. Те решиха, че това не е технологичен скок, а маркетингов ход, който стои в основата на концепцията за Hyper Threading, която поради своята архитектура не е в състояние значително да ускори компютъра. Но съмненията на критиците бяха бързо разсеяни от инженерите на Intel.

И така, основните условия за успешното използване на технологията:

Поддръжка за Hyper-Threading от I/O системата;

Съвместимост на дънната платка с процесора от съответния тип;

Поддръжката на технология от операционната система и конкретното приложение, работещо върху нея.

Ако не трябва да има особени проблеми по първите две точки, тогава по отношение на съвместимостта на програмите с Hyper-Threading, все още може да има някои наслагвания. Но може да се отбележи, че ако приложението поддържа, например, работа с двуядрени процесори, тогава то ще бъде съвместимо, почти гарантирано, с технологията на Intel.

Поне има проучвания, потвърждаващи повишаването на производителността на програми, адаптирани към двуядрени микросхеми, с около 15-18%, ако модулите на Intel Hyper Threading работят в процесора. Вече знаем как да ги деактивираме (в случай, че потребителят има съмнения относно целесъобразността от използването на технологията). Но вероятно има много малко осезаеми причини за появата им.

Практическа полезност на Hyper-Threading

Дали въпросната технология е оказала осезаемо въздействие върху Intel? Има различни мнения по този въпрос. Но много хора отбелязват, че технологията Hyper-Threading е станала толкова популярна, че това решение е станало незаменимо за много производители на сървърни системи и е прието положително от обикновените потребители на компютри.

Хардуерна обработка на данни

Основното предимство на технологията е, че е реализирана в хардуерен формат. Тоест основната част от изчисленията ще се извършват вътре в процесора на специални модули, а не под формата на софтуерни алгоритми, предавани на нивото на основното ядро ​​на микросхемата - което би означавало намаляване на общата производителност на НАСТОЛЕН КОМПЮТЪР. Като цяло, според ИТ експерти, инженерите на Intel са успели да решат проблема, който са идентифицирали в началото на разработването на технологията - да направят процесора да функционира по-ефективно. Всъщност, както показаха тестовете, при решаване на много задачи, които са практически важни за потребителя, използването на Hyper-Threading направи възможно значително да се ускори работата.

Може да се отбележи, че сред 4 тези микросхеми, които бяха оборудвани с поддържащи модули за разглежданата технология, работеха много по-ефективно от първите модификации. Това до голяма степен се изразява в способността на компютъра да функционира в реален режим на многозадачност - когато няколко различни типа Windows приложения, и е силно нежелателно поради повишената консумация на системни ресурси от един от тях, скоростта на останалите да намалява.

Едновременно решаване на различни задачи

По този начин процесорите с поддръжка на Hyper-Threading са по-добре адаптирани от микросхемите, които не са съвместими с него, за едновременно стартиране, например, на браузър, възпроизвеждане на музика и работа с документи. Разбира се, всички тези предимства се усещат от потребителя на практика само ако софтуерните и хардуерните компоненти на компютъра са достатъчно съвместими с този режим на работа.

Подобни разработки

Hyper-Threading не е единствената технология, предназначена да подобри производителността на компютъра чрез многонишково изчисление. Тя има аналози.

Например, процесорите POWER5, пуснати от IBM, също поддържат многонишковост. Тоест всеки от (общо 2 съответни елемента са инсталирани на него) може да изпълнява задачи в рамките на 2 нишки. Така микросхемата обработва 4 потока от изчисления едновременно.

AMD също има отлични резултати в областта на многонишковите концепции. Така че, известно е, че архитектурата на Bulldozer използва алгоритми, подобни на Hyper-Threading. Характеристика на решението на AMD е, че всяка от нишките обработва отделни блокове на процесора. Когато второто ниво остава общо. Подобни концепции са внедрени в архитектурата Bobcat, разработена от AMD, която е адаптирана за лаптопи и малки компютри.

Разбира се, директните аналози на концепцията от AMD, IBM и Intel могат да се разглеждат много условно. Както и подходи за проектиране на архитектурата на процесорите като цяло. Но принципите, внедрени в съответните технологии, могат да се считат за доста сходни, а целите, поставени от разработчиците по отношение на подобряване на ефективността на функционирането на микросхемите, са много близки по същество, ако не и идентични.

Това са ключовите факти относно най-интересната технология на Intel. Какво е това, как да активирате Hyper-Threading или, обратно, да го деактивирате, ние определихме. Въпросът вероятно е в практическото използване на неговите предимства, които могат да се използват, като се уверите, че компютърът в хардуерни и софтуерни компоненти поддържа технологията.

Hyper Threading (хипер резба, 'хипер нишка', hyper threading - рус.) - технология, разработена от компанията Intel, което позволява на процесорното ядро ​​да изпълнява повече потоци данни от един (обикновено два). Тъй като беше установено, че конвенционален процесор в повечето задачи използва не повече от 70% от цялата изчислителна мощност беше решено да се използва технология, която позволява, когато определени изчислителни единици са неактивни, да ги натоварят с работа с друга нишка. Това ви позволява да увеличите производителността на ядрото от 10 до 80%в зависимост от задачата.

Вижте как работи Hyper-Threading .

Да предположим, че процесорът извършва прости изчисления и в същото време блок от инструкции е неактивен и SIMDразширения.

Модулът за адресиране открива това и изпраща данни там за по-нататъшно изчисление. Ако данните са специфични, тогава тези блокове ще ги изпълняват по-бавно, но данните няма да са неактивни. Или ще ги обработят предварително за по-нататъшна бърза обработка от съответния блок. Това дава допълнителна печалба на производителността.

Естествено, виртуалната нишка не достига до пълноценното ядро, но това ви позволява да постигнете почти 100% ефективност на изчислителната мощност, зареждане на почти целия процесор с работа, без да го оставя да работи на празен ход. с всичко това, за внедряване на HT технологиясамо прибл. 5% допълнително пространство на матрицата и понякога може да се добави производителност 50% . Тази допълнителна област включва допълнителни блокове от регистри и прогнозиране на разклонения, които поточно изчисляват къде може да се използва изчислителна мощност в даден момент и изпраща данни от допълнителен адресен блок там.

За първи път технологията се появи на процесори Pentium 4, но нямаше голямо увеличение на производителността, тъй като самият процесор нямаше висока изчислителна мощност. Растежът беше в най-добрия случай 15-20% , а при много задачи процесорът работеше много по-бавно, отколкото без него HT.

Забави процесор поради технологията Hyper Threading, се случва, ако:

  • Няма достатъчно кешза всичко дадено и се рестартира циклично, забавяйки процесора.
  • Данните не могат да бъдат обработени правилно от предсказателя за клонове. Възниква главно поради липса на оптимизацияза конкретен софтуер или поддръжка от операционната система.
  • Може да възникне и поради зависимости от данни, когато например първата нишка изисква незабавни данни от втората, но те все още не са готови или чакат на опашка за друга нишка. Или цикличните данни се нуждаят от определени блокове за бърза обработка и те се зареждат с други данни. Може да има много вариации на зависимостта от данни.
  • Ако ядрото вече е силно натоварено и „недостатъчно интелигентният“ модул за прогнозиране на клонове все още изпраща данни, които забавят процесора (уместно за Pentium 4).

След Pentium 4, Intelзапочна да използва технологията само от Core i7първо поколение, пропускайки серията 2 .

Изчислителната мощност на процесорите стана достатъчна за пълното внедряване на хиперпоточност без много вреда, дори и за неоптимизирани приложения. По късно, Hyper Threadingсе появи на процесори от средния клас и дори бюджетни и преносими. Използва се във всички серии ядро и (i3; i5; i7) и нататък мобилни процесори атом(въобще не). Интересното е, че двуядрените процесори с HT, получават по-голямо увеличение на производителността от използването на четириядрени Hyper Threading, стоящ на 75% пълноценни четири ядрени.

Къде е полезен HyperThreading?

Ще бъде полезно за използване във връзка с професионални, графични, аналитични, математически и научни програми, видео и аудио редактори, архиватори ( Photoshop, Corel Draw, Maya, 3D's Max, WinRar, Sony Vegas и т.н.). Всички програми, които използват много изчисления, HTопределено ще бъде полезен. За щастие, в 90% случаи, такива програми са добре оптимизирани за неговото използване.

хиперпоточностнезаменим за сървърни системи. Всъщност за тази ниша тя беше частично разработена. Благодарение на HT, можете значително да увеличите възвръщаемостта на процесора, когато има голям брой задачи. Всяка нишка ще бъде разтоварена наполовина, което има благоприятен ефект върху адресирането на данни и прогнозирането на разклонения.

много компютърни игри , са негативно свързани с присъствието Hyper Threading, което намалява броя на кадрите в секунда. Това се дължи на липсата на оптимизация за Hyper Threadingот страната на играта. Една оптимизация от страна на операционната система не винаги е достатъчна, особено при работа с необичайни, разнородни и сложни данни.

На дънни платки, които поддържат HT, винаги можете да деактивирате технологията за хиперпоточност.

На 20 януари 2015 г. в 19:43 ч

Повече за Hyper-Threading

  • тестване на ИТ системи,
  • Програмиране

Имаше време, когато беше необходимо да се оцени производителността на паметта в контекста на технологията Hyper-threading. Стигнахме до извода, че влиянието му не винаги е положително. Когато се появи квантът на свободното време, имаше желание да продължат изследванията и да разгледат протичащите процеси с точност на машинните цикли и битове, използвайки софтуерсобствено развитие.

Проучвана платформа

Обект на експеримента - лаптоп ASUS N750JK с процесор Intel Core i7-4700HQ. Тактовата честота е 2.4GHz, усилена от Intel Turbo Boost режим до 3.4GHz. Инсталирани 16 гигабайта оперативна памет DDR3-1600 (PC3-12800), работещ в двуканален режим. Операционна система - Microsoft Windows 8.1 64 бита.

Фиг.1 Конфигурация на изследваната платформа.

Процесорът на изследваната платформа съдържа 4 ядра, които при активирана технология Hyper-Threading осигуряват хардуерна поддръжка за 8 нишки или логически процесора. Фърмуерът на платформата предава тази информация на операционната система чрез ACPI таблицата MADT (Multiple APIC Description Table). Тъй като платформата съдържа само един RAM контролер, няма SRAT (System Resource Affinity Table), който да декларира близостта на процесорните ядра до контролерите на паметта. Очевидно въпросният лаптоп не е NUMA платформа, а операционна система, за целите на обединяването, я разглежда като NUMA система с един домейн, както е посочено с реда NUMA Nodes = 1. Фактът, който е основен за нашите експерименти е, че кешът за данни от първо ниво има размер от 32 килобайта за всяко от четирите ядра. Два логически процесора, споделящи едно и също ядро, споделят L1 и L2 кеша.

Разследвана операция

Ще изследваме зависимостта на скоростта на четене на блок от данни от неговия размер. За да направим това, ще изберем най-продуктивния метод, а именно четене на 256-битови операнди с помощта на инструкцията VMOVAPD AVX. На графиките оста X показва размера на блока, а оста Y показва скоростта на четене. В близост до точка X, съответстваща на размера на L1 кеша, очакваме да видим точка на пречупване, тъй като производителността трябва да спадне, след като обработваният блок излезе от кеша. В нашия тест, в случай на многонишковост, всяка от 16-те инициирани нишки работи с отделен адресен диапазон. За да контролира Hyper-Threading технологията в рамките на приложение, всяка нишка използва функцията SetThreadAffinityMask API, която задава маска, в която всеки логически процесор съответства на един бит. Една стойност на бита позволява използването на посочения процесор от определената нишка, нулева стойност го забранява. За 8 логически процесора на изследваната платформа маска 11111111b позволява използването на всички процесори (Hyper-Threading е активиран), маска 01010101b позволява използването на един логически процесор във всяко ядро ​​(Hyper-Threading е деактивиран).

В графиките се използват следните съкращения:

MBPS (мегабайта в секунда)скорост на четене на блок в мегабайти в секунда;

CPI (Часовници на инструкция)брой цикли на инструкция;

TSC (брояч на времеви печати)брояч на циклите на процесора.

Забележка: Тактовата честота на TSC регистъра може да не съвпада с тактовата честота на процесора, когато работи в режим Turbo Boost. Това трябва да се има предвид при интерпретацията на резултатите.

От дясната страна на графиките се визуализира шестнадесетичен дъмп на инструкциите, които съставляват тялото на цикъла на целевата операция, извършена във всяка от програмните нишки, или първите 128 байта от този код.

Опит номер 1. Една нишка



Фиг.2 Четене в една тема

Максималната скорост е 213563 мегабайта в секунда. Точката на прегъване се появява при размер на блок от около 32 килобайта.

Опит номер 2. 16 нишки на 4 процесора, Hyper-Threading е деактивиран



Фиг.3 Четене в шестнадесет теми. Броят на използваните логически процесори е четири

Hyper-threading е деактивиран. Максималната скорост е 797598 мегабайта в секунда. Точката на прегъване се появява при размер на блок от около 32 килобайта. Както се очакваше, в сравнение с четенето в една нишка, скоростта се увеличи около 4 пъти, по отношение на броя на работещите ядра.

Опит номер 3. 16 нишки на 8 процесора, активиран Hyper-Threading



Фиг.4 Четене в шестнадесет теми. Броят на използваните логически процесори е осем

Hyper-threading е активиран. Максималната скорост от 800722 мегабайта в секунда, в резултат на включването на Hyper-Threading, почти не се увеличи. Големият минус е, че точката на прегъване се появява при размер на блок от около 16 килобайта. Активирането на Hyper-Threading леко увеличи максималната скорост, но спадът на скоростта сега се случва при половината от размера на блока - около 16 килобайта, така че средната скорост е спаднала значително. Това не е изненадващо, всяко ядро ​​има собствен L1 кеш, докато логическите процесори в същото ядро ​​го споделят.

заключения

Изследваната операция се мащабира доста добре на многоядрен процесор. Причините са, че всяко от ядрата съдържа собствена кеш памет от първо и второ ниво, размерът на целевия блок е съпоставим с размера на кеш паметта и всяка от нишките работи със собствен диапазон от адреси. За академични цели създадохме такива условия в синтетичен тест, осъзнавайки, че реалните приложения обикновено са далеч от идеалната оптимизация. Но включването на Hyper-Threading, дори при тези условия, имаше отрицателен ефект, с леко увеличение на пиковата скорост, има значителна загуба в скоростта на обработка на блокове, чийто размер е в диапазона от 16 до 32 килобайта.

Написахме, че използването на еднопроцесорни Xeon системи няма смисъл, тъй като на по-висока цена производителността им ще бъде същата като тази на Pentium 4 със същата честота. Сега, след по-внимателно разглеждане, това твърдение вероятно ще трябва да бъде леко изменено. Технологията Hyper-Threading, внедрена в Intel Xeon с ядрото Prestonia, наистина работи и дава доста осезаем ефект. Въпреки че има и много въпроси, когато го използвате ...

Дайте изпълнение

"По-бързо, още по-бързо...". Надпреварата за производителност продължава от години и понякога дори е трудно да се каже кой от компютърните компоненти се ускорява по-бързо. За това се измислят все повече и повече нови начини и колкото по-далеч, толкова по-квалифициран труд и висококачествени мозъци се инвестират в този лавинообразен процес.

Разбира се, е необходимо постоянно повишаване на производителността. Най-малкото, това е печеливш бизнес и винаги има приятен начин да насърчите потребителите да надстроят вчерашния „супер работещ CPU“ до утрешния „още по-супер...“. Например, едновременно разпознаване на говор и симултанен превод на друг език – не е ли това мечтата на всеки? Или необичайно реалистични игри с почти „кино“ качество (напълно поглъщащи вниманието и понякога водещи до сериозни промени в психиката) – не е ли това желанието на много геймъри, малки и големи?

Но нека пропуснем маркетинговите аспекти в този случай, като се съсредоточим върху техническите. Освен това не всичко е толкова мрачно: има спешни задачи (сървърни приложения, научни изчисления, моделиране и т.н.), където всичко е повече висока производителност, по-специално централни процесори, е наистина необходима.

И така, какви са начините за повишаване на тяхната производителност?

Ускоряване на часовника. Може да бъде допълнително "изтънен" технологичен процеси увеличете честотата. Но, както знаете, това не е лесно и е изпълнено с всякакви странични ефекти, като проблеми с разсейването на топлината.

Увеличаване на ресурсите на процесора- например увеличаване на обема на кеша, добавяне на нови блокове (Execution Units). Всичко това води до увеличаване на броя на транзисторите, сложността на процесора, увеличаване на площта на кристала и, следователно, на цената.

Освен това предишните два метода по правило в никакъв случай не дават линейно увеличение на производителността. Това е добре известно в примера с Pentium 4: грешки при прогнозиране на разклонения и прекъсвания причиняват нулиране на дълъг конвейер, което значително влияе върху цялостната производителност.

многопроцесорна обработка. Инсталирането на множество процесори и разпределението на работата между тях често е доста ефективно. Но този подход не е много евтин – всеки допълнителен процесор оскъпява системата, а двойната дънна платка е много по-скъпа от обикновената (да не говорим за дънни платки с поддръжка за четири или повече процесора). Освен това не всички приложения се възползват от многопроцесорността достатъчно, за да оправдаят разходите.

В допълнение към „чистата“ многопроцесорна обработка, има няколко „междинни“ опции, които ви позволяват да ускорите изпълнението на приложението:

Многопроцесорна обработка на чипове (CMP)- две процесорни ядра са физически разположени на един и същ чип, използвайки общ или отделен кеш. Естествено, размерът на кристала се оказва доста голям и това не може да не повлияе на цената. Имайте предвид, че няколко от тези "двойни" процесори могат да работят и в многопроцесорна система.

Многонишковост на времеви отрязъци. Процесорът превключва между програмни нишки на фиксирани интервали. Режийните разходи понякога могат да бъдат доста огромни, особено ако процесът чака.

Многонишковост при включване при събитие. Превключване на задачи, когато се появят дълги паузи, като "пропуски в кеша" (кеш пропуски), голям брой от които са типични за сървърни приложения. В този случай процес, който чака да зареди данни от относително бавна памет в кеша, е спрян, освобождавайки ресурсите на процесора за други процеси. Въпреки това, многонишковостта при включване при събитие, подобно на многонишковостта на времеви отрязъци, не винаги постига оптимално използване на ресурсите на процесора, по-специално поради грешки при прогнозиране на разклонения, зависимости от инструкции и т.н.

Едновременна многонишкова обработка. В този случай програмните нишки се изпълняват на един и същ процесор "едновременно", т.е. без превключване между тях. Ресурсите на процесора се разпределят динамично, според принципа „ако не го използваш, дай го на някой друг“. Именно този подход е в основата Технологии на Intel Hyper-Threading, към който сега се обръщаме.

Как работи Hyper-Threading

Както знаете, настоящата "компютърна парадигма" включва многонишкови изчисления. Това се отнася не само за сървърите, където първоначално съществува такава концепция, но и за работни станции и настолни системи. Нишките могат да принадлежат към едни и същи или различни приложения, но почти винаги има повече активни нишки от една (за да видите това, просто отворете диспечера на задачите в Windows 2000/XP и включете показването на броя на нишките). В същото време конвенционалният процесор може да изпълнява само една от нишките в даден момент и е принуден постоянно да превключва между тях.

За първи път технологията Hyper-Threading беше внедрена в процесора Intel Xeon MP (Foster MP), на който се „работеше“. Припомнете си, че Xeon MP, официално представен на IDF Spring 2002, използва ядро ​​Pentium 4 Willamette, съдържа 256 KB L2 кеш и 512 KB/1 MB L3 кеш и поддържа 4-процесорни конфигурации. Поддръжката на Hyper-Threading присъства и в процесора Intel Xeon за работни станции (ядро Prestonia, 512 KB L2 кеш), който навлезе на пазара малко по-рано от Xeon MP. Нашите читатели вече са запознати с двупроцесорните конфигурации на Intel Xeon, така че ще разгледаме възможностите на Hyper-Threading, използвайки тези процесори като пример - както теоретично, така и практически. Както и да е, "простият" Xeon е по-обикновен и смилаем от Xeon MP в 4-процесорни системи...

Принципът на действие на Hyper-Threading се основава на факта, че във всеки един момент се използва само част от ресурсите на процесора при изпълнение на програмния код. Неизползваните ресурси също могат да бъдат заредени с работа - например, още едно приложение (или друга нишка на същото приложение) може да се използва за паралелно изпълнение. В един физически процесор Intel Xeon се формират два логически процесора (LP - Logical Processor), които споделят изчислителните ресурси на CPU. Операционната система и приложенията "виждат" точно два процесора и могат да разпределят работата между тях, както в случая на пълноценна двупроцесорна система.

Една от целите на внедряването на Hyper-Threading е да позволи само една активна нишка да работи със същата скорост като на нормален процесор. За да направите това, процесорът има два основни режима на работа: Single-Task (ST) и Multi-Task (MT). В режим ST само един логически процесор е активен и използва наличните ресурси неразделно (режимите ST0 и ST1); другият LP се спира от командата HALT. Когато се появи втора програмна нишка, неактивният логически процесор се активира (чрез прекъсване) и физическият процесор се поставя в режим MT. Спирането на неизползваните LP с командата HALT е отговорност на операционната система, която в крайна сметка е отговорна за същото бързо изпълнение на една нишка, както в случая без Hyper-Threading.

За всяко от двете LP се съхранява т. нар. Архитектурно състояние (AS), което включва състоянието на регистри от различни типове – общо предназначение, контрол, APIC и сервиз. Всеки LP има свой собствен APIC (контролер за прекъсвания) и набор от регистри, за правилна работа, с които се въвежда концепцията за таблица с псевдоним на регистри (RAT), която проследява съответствието между осем регистри с общо предназначение IA-32 и 128 физически регистри на процесора (един RAT за всеки LP).

Когато се изпълняват две нишки, се поддържат два съответни набора от указатели за следващи инструкции. Повечето от инструкциите са взети от Trace Cache (TC), където се съхраняват в декодирана форма и двете активни LP имат достъп до TC на свой ред, всеки часовник. В същото време, когато е активен само един LP, той получава изключителен достъп до TC без преплитане на часовници. По същия начин се осъществява достъп до Microcode ROM. ITLB блоковете (Instruction Translation Look-aside Buffer), които се активират при липса на необходимите инструкции в кеша на инструкциите, се дублират и доставят инструкции всеки за своя собствена нишка. Блокът за декодиране на инструкции IA-32 е споделен и в случай, когато се изисква декодиране на инструкции за двата потока, той ги обслужва един по един (отново всеки такт). Блоковете Uop Queue и Allocator са разделени на две, като половината от елементите са разпределени за всеки LP. Планировчиците от 5 броя обработват опашки от декодирани команди (Uops) въпреки принадлежността към LP0 / LP1 и директните команди да бъдат изпълнени от необходимите Execution Units - в зависимост от готовността за изпълнение на първата и наличността на втората. Кешове от всички нива (L1/L2 за Xeon и L3 за Xeon MP) са напълно споделени между две LP, но за да се гарантира целостта на данните, записите в DTLB (Data Translation Look-aside Buffer) се доставят с дескриптори под формата на идентификатори на логически процесори.

По този начин инструкциите на двата логически процесора могат да се изпълняват едновременно върху ресурсите на един физически процесор, които са разделени на четири класа:

  • дублиран (Duplicated);
  • напълно споделено (Fully Shared);
  • с дескриптори на елементи (Entry Tagged);
  • динамично разделен (разделен) в зависимост от режима на работа на ST0/ST1 или MT.

Въпреки това, повечето приложения, които се ускоряват на многопроцесорни системи, могат да бъдат ускорени и на CPU с активиран Hyper-Threading без никакви модификации. Но има и проблеми: например, ако един процес е в цикъл на изчакване, той може да поеме всички ресурси на физическия процесор, предотвратявайки работата на втория LP. По този начин производителността при използване на Hyper-Threading понякога може да спадне (до 20%). За да предотврати това, Intel препоръчва използването на инструкцията PAUSE вместо празни цикли на изчакване (въведени в IA-32, започвайки с Pentium 4). Сериозна работа също се извършва по автоматична и полуавтоматична оптимизация на кода по време на компилацията - например компилаторите от серията Intel OpenMP C ++ / Fortran Compilers () постигнаха значителен напредък в това отношение.

Друга цел на първото внедряване на Hyper-Threading, според Intel, беше да се сведе до минимум нарастването на броя на транзисторите, площта на матрицата и консумацията на енергия, като същевременно се повиши значително производителността. Първата част от този ангажимент вече е изпълнена: добавянето на поддръжка на Hyper-Threading към Xeon/Xeon MP увеличи площта на матрицата и консумацията на енергия с по-малко от 5%. Какво се случи с втората част (спектакъл), тепърва ще проверяваме.

Практическа част

По очевидни причини не тествахме 4-процесорни сървърни системи на Xeon MP с активиран Hyper-Threading. Първо, това е доста трудоемко. И второ, ако се решим на такъв подвиг, все още, по-малко от месец след официалното обявяване, е абсолютно нереалистично да се сдобием с това скъпо оборудване. Затова беше решено да се ограничим до една и съща система с два Intel Xeon 2,2 GHz, на които бяха проведени първите тестове на тези процесори (вижте връзката в началото на статията). Системата се базираше на дънна платка Supermicro P4DC6+ ( Intel чипсет i860), съдържа 512 MB RDRAM, видеокарта на чип GeForce3 (64 MB DDR, драйвери Detonator 21.85), HDD Western Digital WD300BB и 6X DVD-ROM; Windows 2000 Professional SP2 беше използван като операционна система.

Първо, няколко общи впечатления. При инсталиране на един Xeon с ядрото на Prestonia при стартиране системен BIOSпоказва съобщение за наличието на два процесора; ако са инсталирани два процесора, потребителят вижда съобщение за четири CPU. Операционната система обикновено разпознава "и двата процесора", но само ако са изпълнени две условия.

Първо, в CMOS Setup, последното Версии на BIOSПлатките Supermicro P4DCxx представиха елемента Enable Hyper-Threading, без който ОС ще разпознава само физическия процесор(и). Второ, ACPI се използва, за да каже на ОС, че има допълнителни логически процесори. Следователно, за да активирате Hyper-Threading, опцията ACPI трябва да бъде активирана в CMOS Setup и HAL (Hardware Abstraction Layer) с поддръжка на ACPI също трябва да бъде инсталиран за самата ОС. За щастие в Windows 2000 промяната на HAL от Standard PC (или MPS Uni-/Multiprocessor PC) към ACPI Uni-/Multiprocessor PC е лесна - чрез промяна на "компютърния драйвер" в диспечера на устройства. В същото време за Windows XP единственият законен начин за мигриране към ACPI HAL е преинсталирането на системата върху съществуваща инсталация.

Но сега всички приготовления са направени и нашият Windows 2000 Pro вече твърдо вярва, че работи на двупроцесорна система (въпреки че всъщност има инсталиран само един процесор). Сега, както обикновено, е време да вземем решение за целите на тестването. Така че ние искаме:

  • Оценете въздействието на Hyper-Threading върху производителността на приложения от различни класове.
  • Сравнете този ефект с ефекта от инсталирането на втори процесор.
  • Проверете колко "справедливо" се дават ресурси на активния логически процесор, когато вторият LP е неактивен.

За да оценим производителността, взехме набор от приложения, вече познати на читателите, които бяха използвани при тестване на системи за работни станции. Нека започнем, може би, от края и да проверим "равенството" на логическите процесори. Всичко е изключително просто: първо стартираме тестове на един процесор с деактивиран Hyper-Threading, а след това повтаряме процеса с активиран Hyper-Threading и използвайки само един от двата логически CPU (с помощта на Task Manager). Тъй като в този случай се интересуваме само от относителни стойности, резултатите от всички тестове се свеждат до формата „по-голямо е по-добре“ и се нормализират (показателите за еднопроцесорна система без Hyper-Threading се приемат като единица).

Е, както можете да видите, обещанията на Intel са изпълнени тук: само с една активна нишка производителността на всеки от двата LP е точно равна на производителността на физически процесор без Hyper-Threading. Неактивният LP (както LP0, така и LP1) наистина е спрян и споделените ресурси, доколкото може да се прецени от получените резултати, се прехвърлят изцяло към използването на активния LP.

Затова правим първия извод: два логически процесора всъщност са равни по права и активирането на Hyper-Threading „не пречи“ на работата на една нишка (което само по себе си не е лошо). Сега да видим дали това включване "помага", и ако да, къде и как?

изобразяване. Резултатите от четири теста в пакети за 3D моделиране 3D Studio MAX 4.26, Lightwave 7b и A|W Maya 4.0.1 са комбинирани в една диаграма поради сходството им.

И в четирите случая (за Lightwave - две различни сцени) натоварването на процесора при наличието на един процесор с деактивиран Hyper-Threading се поддържа почти постоянно на 100%. Въпреки това, когато Hyper-Threading е активиран, изчисляването на сцените се ускорява (в резултат на това дори имахме шега за използване на процесора над 100%). В три теста можем да видим увеличение на производителността от Hyper-Threading от 14--18% - от една страна, не много в сравнение с втория CPU, но от друга страна е доста добре, като се има предвид "безплатния" ефект на този ефект. В един от двата теста с Lightwave печалбата на производителността е почти нулева (очевидно се отразява спецификата на това пълно със странности приложение). Но никъде няма отрицателен резултат, а забележимото увеличение в останалите три случая е обнадеждаващо. И това въпреки факта, че процесите на паралелно изобразяване вършат подобна работа и със сигурност не могат да използват ресурсите на физическия процесор едновременно по най-добрия начин.

Photoshop и MP3 кодиране. Кодекът GOGO-no-coda 2.39c е един от малкото, които поддържат SMP и показва 34% увеличение на производителността от двоен процесор. В същото време ефектът от Hyper-Threading в този случай е нулев (не считаме разликата от 3% за значителна). Но в теста с Photoshop 6.0.1 (скрипт, състоящ се от голям набор от команди и филтри), можете да видите забавяне, когато Hyper-Threading е активиран, въпреки че вторият физически процесор добавя 12% производителност в този случай. Тук всъщност е първият случай, когато Hyper-Threading причинява спад в производителността ...

Професионален OpenGL. Отдавна е известно, че SPEC ViewPerf и много други OpenGL приложения често се забавят в SMP системи.

OpenGL и двоен процесор: защо не са приятели

Много пъти в статиите привличахме вниманието на читателите към факта, че двупроцесорните платформи много рядко показват някакво съществено предимство пред еднопроцесорните при извършване на професионални OpenGL тестове. И нещо повече, има случаи, когато инсталирането на втори процесор, напротив, влошава производителността на системата при изобразяване на динамични 3D сцени.

Естествено, не само ние забелязахме тази странност. Някои тестери просто мълчаливо заобиколиха този факт – например, като предоставиха резултати за сравнение на SPEC ViewPerf само за двупроцесорни конфигурации, като по този начин избягваха обясненията „защо двупроцесорната система е по-бавна?“. Други направиха всякакви фантастични предположения относно кохерентността на кеша, необходимостта от поддържането му, произтичащите от това режийни разходи и т.н. И по някаква причина никой не беше изненадан, че например процесорите нямаха търпение да наблюдават кохерентността точно в изобразяването на OpenGL в прозорец (в своята „изчислителна“ същност, тя не се различава много от всяка друга изчислителна задача).

Всъщност обяснението според нас е много по-просто. Както знаете, едно приложение може да работи по-бързо на два процесора, отколкото на един, ако:

  • има повече от две или повече едновременно изпълняващи се програмни нишки (нишки);
  • тези нишки не пречат една на друга в изпълнението - например, те не се конкурират за споделен ресурс като външен диск или мрежов интерфейс.

Сега, нека да разгледаме опростен начин как изглежда изобразяването на OpenGL, извършено от две нишки. Ако приложение, "виждайки" два процесора, създаде две нишки за изобразяване на OpenGL, тогава за всяка от тях, според правилата на OpenGL, се създава собствен gl-контекст. Съответно, всяка нишка се изобразява в своя собствен gl контекст. Но проблемът е, че за прозореца, в който се показва изображението, по всяко време може да бъде текущ само един gl-контекст. Съответно, нишките в този случай просто "една по една" извеждат генерираното изображение към прозореца, правейки техния контекст алтернативно текущ. Излишно е да казвам, че това „преплитане на контекста“ може да бъде много скъпо по отношение на режийните разходи?

Също така, като пример, ще дадем графики на използването на два процесора в няколко приложения, които показват OpenGL сцени. Всички измервания са извършени на платформа със следната конфигурация:

  • един или два Intel Xeon 2,2 GHz (Hyper-Threading деактивиран);
  • 512 MB RDRAM;
  • Supermicro P4DC6+ дънна платка;
  • ASUS V8200 Deluxe видеокарта (NVidia GeForce3, 64 MB DDR SDRAM, драйвери Detonator 21.85);
  • Windows 2000 Professional SP2;
  • видео режим 1280x1024x32 bpp, 85 Hz, Vsync е деактивиран.

Синьото и червено са графиките на натоварване на CPU 0 и CPU 1, съответно. Линията в средата е крайната графика за използване на процесора. Трите графики отговарят на две сцени от 3D Studio MAX 4.26 и част от теста SPEC ViewPerf (AWadvs-04).


Използване на процесора: Animation 3D Studio MAX 4.26 - Anibal (с манипулатори).max


Използване на процесора: Animation 3D Studio MAX 4.26 - Rabbit.max


Използване на процесора: SPEC ViewPerf 6.1.2 - AWadvs-04

Същият модел се повтаря в множество други приложения, които използват OpenGL. Два процесора изобщо не се притесняват от работата, а общото използване на процесора е на ниво 50-60%. В същото време за еднопроцесорна система във всички тези случаи използването на процесора се поддържа уверено на ниво от 100%.

Така че не е изненадващо, че много OpenGL приложения не стават много по-бързи на двойни системи. Е, фактът, че понякога дори забавят, според нас има напълно логично обяснение.

Можем да кажем, че при два логически процесора спадът в производителността е още по-значителен, което е съвсем разбираемо: два логически процесора си пречат по същия начин, както два физически. Но тяхната цялостна производителност, разбира се, се оказва по-ниска в този случай, така че когато Hyper-Threading е активиран, тя намалява дори повече, отколкото само когато работят два физически процесора. Резултатът е предсказуем и заключението е просто: Hyper-Threading, подобно на "истински" SMP, понякога е противопоказан за OpenGL.

CAD приложения. Предишното заключение се потвърждава от резултатите от два CAD теста – SPECapc за SolidEdge V10 и SPECapc за SolidWorks. Графичната производителност на тези тестове за Hyper-Threading е подобна (въпреки че резултатът е малко по-висок в случая на SMP система за SolidEdge V10). Но резултатите от тестовете CPU_Score, които натоварват процесора, ви карат да мислите: 5-10% увеличение от SMP и 14-19% забавяне от Hyper-Threading.

Но в края на деня Intel честно признава потенциала за влошаване на производителността с Hyper-Threading в някои случаи - например при използване на празни цикли на изчакване. Можем само да предположим, че това е причината (подробно разглеждане на кода на SolidEdge и SolidWorks е извън обхвата на тази статия). В крайна сметка всеки знае консерватизма на разработчиците на CAD приложения, които предпочитат доказана надеждност и не бързат да пренаписват кода, като се вземат предвид новите тенденции в програмирането.

Обобщаване или "Внимание, правилният въпрос"

Hyper-Threading работи, няма съмнение в това. Разбира се, технологията не е универсална: има приложения, за които Hyper-Threading "става лош" и в случай на разпространение на тази технология би било желателно да ги модифицирате. Но не се ли случи същото с MMX и SSE и продължава да се случва с SSE2?..

Това обаче повдига въпроса за приложимостта на тази технология към нашите реалности. Веднага ще отхвърлим опцията за еднопроцесорна система на Xeon с Hyper-Threading (или я разглеждаме само като временна, в очакване на закупуване на втори процесор): дори 30% увеличение на производителността не оправдава цената в нито един начин - тогава е по-добре да си купите обикновен Pentium 4. Броят на оставените процесори е от два или повече.

Сега нека си представим, че купуваме двупроцесорна Xeon система (да речем, с Windows 2000/XP Professional). Два CPU са инсталирани, Hyper-Threading е разрешен, BIOS намира цели четири логически процесора, сега да излитаме ... Стоп. Но колко процесора ще види нашата операционна система? Точно така, две. Само две, защото просто не е предназначена за по-голям брой. Това ще бъдат два физически процесора, тоест всичко ще работи точно както при деактивиран Hyper-Threading - не по-бавно (два "допълнителни" логически процесора просто ще спрат), но не по-бързо (проверено чрез допълнителни тестове, резултатите не се цитират за тяхната очевидност). Хммм, не е много забавно...

Какво остава? Е, не инсталирайте Advanced Server или .NET Server на нашата работна станция, наистина? Не, системата ще се инсталира, ще разпознае и четирите логически процесора и ще функционира. Просто сървърната ОС гледа на работната станция, меко казано, малко странно (да не говорим за финансовите аспекти). Единственият разумен случай е, когато нашата двупроцесорна Xeon система ще действа като сървър (поне някои разработчици не се колебаят да пуснат сървъри на процесори Xeon на работни станции). Но за двойни работни станции със съответните операционни системи, приложимостта на Hyper-Threading остава под въпрос. Intel сега активно се застъпва за лицензиране на ОС въз основа на броя не логически, а физически процесори. Дискусиите все още продължават и като цяло много зависи от това дали ще видим операционна система за работна станция с поддръжка за четири процесора.

Е, със сървърите всичко излиза доста просто. Например, Windows 2000 Advanced Server, инсталиран на система Xeon с два сокета с активиран Hyper-Threading, ще вижда четири логически процесора и ще работи гладко на него. За да оценим какво носи Hyper-Threading за сървърните системи, представяме резултатите от Intel Microprocessor Software Labs за двупроцесорни системи на Xeon MP и няколко сървърни приложения на Microsoft.

Повишаването на производителността с 20-30% за двупроцесорен сървър "безплатно" е повече от изкушаващо (особено в сравнение с закупуването на "истинска" 4-процесорна система).

Така се оказва, че в момента практическата приложимост на Hyper-Threading е възможна само в сървъри. Проблемът с работните станции зависи от решението с лицензиране на ОС. Въпреки че още едно приложение на Hyper-Threading е съвсем реално - ако настолните процесори получат поддръжка за тази технология. Например (нека си представим) какво не е наред със система Pentium 4 с поддръжка на Hyper-Threading, на която е инсталиран Windows 2000/XP Professional с поддръжка на SMP? .. В това обаче няма нищо невероятно: ентусиазираните разработчици на Intel обещават широкото разпространение въвеждане на Hyper-Threading – от сървъри до настолни и мобилни системи.