Үй / Әртүрлі / Гипер жіп технологиясын қолдау. Intel ұсынған Hyper-Threading технологиясы. Өнімділік ешқашан жеткіліксіз

Гипер жіп технологиясын қолдау. Intel ұсынған Hyper-Threading технологиясы. Өнімділік ешқашан жеткіліксіз

Кем дегенде бір рет BIOS конфигурациясын жасаған пайдаланушылар Intel Hyper Threading параметрі бар екенін байқаған болуы мүмкін, ол көпшілікке түсініксіз. Көбісі бұл технологияның не екенін және қандай мақсатта қолданылатынын білмейді. Hyper Threading деген не екенін және осы қолдауды пайдалануды қалай қосуға болатынын анықтауға тырысайық. Сондай-ақ біз оның компьютерге қандай артықшылықтар беретінін анықтауға тырысамыз. бұл параметр. Негізінде мұнда түсіну қиын ештеңе жоқ.

Intel Hyper Threading: бұл не?
Егер сіз компьютерлік терминологияның джунглиіне тереңдеп бармай, оны қарапайым тілмен жеткізсеңіз, онда бұл технологияпроцессормен бір уақытта өңделетін пәрмендер ағынын арттыруға арналған. Қазіргі процессорлық чиптер, әдетте, қол жетімді есептеу мүмкіндіктерінің тек 70% ғана пайдаланады. Қалғаны, былайша айтқанда, резервте қалады. Деректер ағынын өңдеуге келетін болсақ, жүйеде көп ядролы процессор пайдаланылғанына қарамастан, көп жағдайда тек бір ағын пайдаланылады.

Жұмыстың негізгі принциптері
Орталық процессордың мүмкіндіктерін арттыру үшін арнайы Hyper Threading технологиясы жасалды. Бұл технология бір пәрмен ағынын екіге бөлуді жеңілдетеді. Сондай-ақ, бар ағынға екінші ағын қосуға болады. Тек осындай ағын виртуалды және физикалық деңгейде жұмыс істемейді. Бұл тәсіл процессордың өнімділігін айтарлықтай арттыруға мүмкіндік береді. Бүкіл жүйе, тиісінше, тезірек жұмыс істей бастайды. CPU өнімділігінің артуы айтарлықтай ауытқуы мүмкін. Бұл бөлек талқыланады. Дегенмен, Hyper Threading технологиясын жасаушылардың өздері оның толыққанды ядроға жетпейтінін айтады. Кейбір жағдайларда бұл технологияны пайдалану толығымен негізделген. Егер сіз Hyper Threading процессорларының мәнін білсеңіз, нәтиже көп күттірмейді.

Тарих анықтамасы
Осы даму тарихына аздап үңіліп көрейік. Hyper Threading қолдауы алдымен Intel Pentium 4 процессорларында ғана пайда болды.Кейінірек бұл технологияны енгізу Intel Core iX сериясында жалғасты (бұл жерде X процессорлар сериясын білдіреді). Айта кету керек, ол қандай да бір себептермен Core 2 процессорының чиптерінің қатарында жоқ. Рас, ол кезде өнімділіктің өсуі өте әлсіз болды: бір жерде 15-20% деңгейінде. Бұл процессордың қажетті өңдеу қуатының жоқтығын және жасалған технологияның іс жүзінде өз уақытынан озып кеткенін көрсетті. Бүгінгі таңда Hyper Threading технологиясын қолдау қазіргі заманғы барлық дерлік чиптерде қол жетімді. Орталық процессордың қуатын арттыру үшін процестің өзі пәрмендер мен деректерді өңдеуге орын қалдыра отырып, кристалдық беттің тек 5% пайдаланады.

Қақтығыстар мен өнімділік мәселесі
Мұның бәрі, әрине, жақсы, бірақ кейбір жағдайларда деректерді өңдеу кезінде жұмыс баяулауы мүмкін. Бұл көбінесе тармақты болжау модулі деп аталатынға және ол үнемі қайта жүктелген кезде жеткіліксіз кэш өлшеміне байланысты. Егер негізгі модуль туралы айтатын болсақ, онда бұл жағдайжағдай кейбір жағдайларда бірінші ағын екіншіден деректерді талап ететіндей дамиды, олар сол сәтте өңделмейді немесе өңдеу кезегінде тұр. Сондай-ақ, орталық процессордың өзегінде өте ауыр жүктеме болған жағдайлар жиі кездеседі және негізгі модуль, соған қарамастан, оған деректерді жіберуді жалғастырады. Кейбір бағдарламалар мен қолданбалар, мысалы ресурсты көп қажет ететін онлайн ойындар, Hyper Threading технологиясын пайдалану үшін оңтайландыру болмағандықтан ғана айтарлықтай баяулауы мүмкін. Ойындармен не болады? Пайдаланушының компьютерлік жүйесі өз тарапынан қолданбадан серверге дейінгі деректер ағынын оңтайландыруға тырысады. Мәселе мынада, ойын деректер ағындарын өз бетінше таратуды білмейді, бәрін бір үйіндіге тастайды. Жалпы алғанда, ол бұл үшін жасалмауы мүмкін. Кейде екі ядролы процессорларда өнімділікті арттыру 4 ядролы процессорларға қарағанда айтарлықтай жоғары. Оларда өңдеу қуаты жоқ.

BIOS жүйесінде Hyper Threading қалай қосуға болады?
Біз Hyper Threading технологиясының не екенін аздап түсіндік және оның даму тарихымен таныстық. Біз Hyper Threading технологиясының не екенін түсінуге жақындадық. Процессорда пайдалану үшін бұл технологияны қалай белсендіруге болады? Мұнда бәрі өте қарапайым. BIOS басқару ішкі жүйесін пайдалану керек. Ішкі жүйе Del, F1, F2, F3, F8, F12, F2+Del, т.б. пернелердің көмегімен енгізіледі. Егер сіз Sony Vaio ноутбугін пайдалансаңыз, оларда арнайы ASSIST пернесін пайдаланған кезде арнайы кіріс болады. BIOS параметрлерінде, егер сіз пайдаланып жатқан процессор Hyper Threading технологиясын қолдаса, арнайы орнату сызығы болуы керек. Көп жағдайда ол Hyper Threading Technology сияқты, ал кейде Функция сияқты көрінеді. Ішкі жүйені әзірлеуші ​​​​және BIOS нұсқасына байланысты бұл параметрді орнату негізгі мәзірде немесе кеңейтілген параметрлерде болуы мүмкін. Бұл технологияны қосу үшін опциялар мәзіріне кіріп, мәнді Қосылған күйіне орнату керек. Осыдан кейін енгізілген өзгертулерді сақтап, жүйені қайта жүктеу керек.

Hyper Threading неліктен пайдалы?
Қорытындылай келе, мен Hyper Threading технологиясын қолданудың артықшылықтары туралы айтқым келеді. Мұның бәрі не үшін? Неліктен ақпаратты өңдеу кезінде процессордың қуатын арттыру қажет? Ресурсты көп қажет ететін қолданбалармен және бағдарламалармен жұмыс істейтін пайдаланушылар ештеңені түсіндірудің қажеті жоқ. Көптеген адамдар графикалық, математикалық, дизайндық бағдарламалық пакеттер жұмыс процесінде көптеген жүйелік ресурстарды қажет ететінін білетін шығар. Осыған байланысты бүкіл жүйенің жүктелгені сонша, ол қатты баяулай бастайды. Мұның алдын алу үшін Hyper Threading қолдауын қосу ұсынылады.

Көптеген Intel процессорлары бар модульдерді қамтиды Гипер қолдау- Threading технологиясы, әзірлеушілердің идеясына сәйкес, чиптің өнімділігін арттыруға және тұтастай алғанда ДК жылдамдатуға көмектесуі керек. Американдық корпорацияның бұл шешімінің ерекшелігі қандай? Hyper-Threading артықшылығын қалай пайдалануға болады?

Технология негіздері

Hyper-Threading туралы негізгі мәліметтерді қарастырайық. Бұл қандай технология? Оны Intel әзірледі және алғаш рет 2001 жылы көпшілікке таныстырды. Оны құрудағы мақсат серверлердің өнімділігін арттыру болды. Hyper-Threading-те жүзеге асырылатын негізгі принцип - процессордың есептеулерін бірнеше ағындарға бөлу. Сонымен қатар, бұл микросұлбаның сәйкес түріне бір ғана ядро ​​орнатылған болса да мүмкін болады (өз кезегінде, егер олардың 2 немесе одан да көп болса және процессордағы ағындар таратылған болса, технология бұл механизмді сәтті толықтырады).

Негізгі ДК микросхемасының бірнеше ағындар ішінде жұмысын қамтамасыз ету есептеулер барысында архитектуралық күйлердің көшірмелерін жасау арқылы жүзеге асырылады. Бұл жағдайда чиптегі ресурстардың бірдей жиынтығы пайдаланылады. Егер қолданба тиісті мүмкіндікті пайдаланса, онда іс жүзінде маңызды операциялар әлдеқайда жылдам орындалады. Сондай-ақ қарастырылып отырған технологияға компьютердің енгізу/шығару жүйесі – BIOS қолдау көрсетуі маңызды.

Hyper-threading қосу

Егер компьютерде орнатылған процессор тиісті стандартты қолдаса, ол әдетте автоматты түрде іске қосылады. Бірақ кейбір жағдайларда Hyper-Threading технологиясы жұмыс істеуі үшін қажетті әрекеттерді қолмен орындауға тура келеді. Оны қалай қосуға болады? Өте оңай.

Негізгі BIOS интерфейсіне кіру керек. Бұл әрекетті орындау үшін, компьютерді жүктеудің ең басында DEL пернесін, кейде - F2, F10, сирек - басқа пернелерді басу керек, бірақ қалаған пернелер әрқашан экранда бірден көрсетілген мәтін жолының бірінде пайда болады. компьютерді қосу. BIOS интерфейсінде Hyper-Threading элементін табу керек: оны қолдайтын енгізу-шығару жүйесінің нұсқаларында ол әдетте көрнекті жерде орналасады. Сәйкес опцияны таңдағаннан кейін Enter пернесін басып, оны Қосылған деп белгілеп белсендіру керек. Бұл режим орнатылған болса, Hyper-Threading технологиясы жұмыс істейді. Сіз оның барлық артықшылықтарын пайдалана аласыз. Параметрлерде технологияны іске қосқаннан кейін «Сақтау және орнатудан шығу» пәрменін таңдау арқылы BIOS жүйесіндегі барлық жазбаларды сақтау керек. Осыдан кейін процессор Hyper-Theading қолдауымен жұмыс істеген кезде компьютер режимде қайта іске қосылады. Сол сияқты, Hyper-Threading өшірілген. Мұны істеу үшін сәйкес тармақта басқа опцияны таңдаңыз - Өшірулі және параметрлерді сақтаңыз.

Hyper-Threading-ті қосу және бұл технологияны өшіру жолын зерттеп болған соң, оның мүмкіндіктерін толығырақ қарастырайық.

Hyper Threading қолдауы бар процессорлар

Компанияның тұжырымдамасы жүзеге асырылған бірінші процессор, кейбір дереккөздерге сәйкес, Intel Xeon MP, сонымен қатар Foster MP ретінде белгілі. Бұл чип бірқатар архитектуралық құрамдас бөліктерде Pentium 4-ке ұқсас, ол да кейінірек қарастырылып жатқан технологияны іске асырды. Кейіннен көп ағынды есептеу мүмкіндігі Prestonia ядросы бар Xeon сервер процессорларында іске асырылды.

Егер біз Hyper-Threading-тің қазіргі таралуы туралы айтатын болсақ, оны қандай «профессионалдар» қолдайды? Осы түрдегі ең танымал чиптердің арасында Core және Xeon отбасыларына жататындар бар. Сондай-ақ ұқсас алгоритмдер Itanium және Atom сияқты процессорларда жүзеге асырылатыны туралы ақпарат бар.

Hyper-Threading, оның қолдауымен процессорлар туралы негізгі ақпаратты зерттей отырып, технологияның даму тарихы туралы ең тамаша фактілерді қарастырайық.

Даму тарихы

Жоғарыда атап өткеніміздей, Intel бұл тұжырымдаманы 2001 жылы жұртшылыққа көрсетті. Бірақ технологияны құрудағы алғашқы қадамдар 90-шы жылдардың басында жасалды. Американдық компанияның инженерлері бірқатар операцияларды орындау кезінде ДК процессорларының ресурстары толық пайдаланылмайтынын байқады.

Intel сарапшылары есептегендей, пайдаланушының ДК-де жұмыс істеуі кезінде микросұлба айтарлықтай аралықтарда белсенді түрде пайдаланылмайды - уақыттың көп бөлігінде - шамамен 30%. Бұл көрсеткішке қатысты сарапшылардың пікірлері өте әртүрлі - біреу оны анық бағаланбаған деп санайды, ал басқалары американдық әзірлеушілердің тезисімен толық келіседі.

Дегенмен, IT мамандарының көпшілігі процессордың 70% емес, бірақ олардың өте маңызды көлемі жұмыс істемейтінімен келіскен.

Әзірлеушілердің негізгі міндеті

Intel бұл жағдайды негізгі ДК микросхемаларының тиімділігін қамтамасыз ету үшін сапалы жаңа тәсіл арқылы түзетуге шешім қабылдады. Процессорлардың мүмкіндіктерін белсендірек пайдалануға ықпал ететін технологияны құру ұсынылды. 1996 жылы Intel мамандары өзінің практикалық дамуын бастады.

Американдық корпорацияның концепциясына сәйкес, процессор бір бағдарламаның мәліметтерін өңдей отырып, жұмыс істемейтін ресурстарды басқа қолданбамен (немесе қазіргінің құрамдас бөлігімен, бірақ құрылымы басқаша және қосымша ресурстарды пайдалануды талап ететін) жұмыс істеуге бағыттай алады. Сәйкес алгоритм сонымен қатар ДК-нің басқа аппараттық құрамдас бөліктерімен - жедел жадпен, чипсетпен және бағдарламалармен тиімді өзара әрекеттесуді болжады.

Intel мәселені шеше алды. Бастапқыда технология Вилламетта деп аталды. 1999 жылы ол кейбір процессорлардың архитектурасына енгізілді және оны тестілеу басталды. Көп ұзамай технология өзінің заманауи атауын алды - Hyper-Threading. Оның нақты не болғанын айту қиын - қарапайым ребрендинг немесе платформаға іргелі түзетулер. Технологияның көпшілік алдында пайда болуына және оны Intel процессорларының әртүрлі үлгілерінде енгізуге қатысты қосымша фактілерді біз қазірдің өзінде білеміз. Бүгінгі таңда кең таралған әзірлеу атауларының арасында Hyper-Threading технологиясы бар.

Технологиямен үйлесімділік аспектілері

Hyper-Threading технологиясын қолдау операциялық жүйелерде қаншалықты жақсы енгізілген? Айта кету керек, егер біз заманауи туралы айтатын болсақ Windows нұсқалары, содан кейін пайдаланушыға Intel Hyper-Threading технологиясының артықшылықтарын толық пайдалану үшін ешқандай проблемалар болмайды. Әрине, енгізу-шығару жүйесінің технологияны қолдайтыны өте маңызды - біз бұл туралы жоғарыда айттық.

Бағдарламалық және аппараттық факторлар

ОЖ-ның ескі нұсқаларына қатысты – Windows 98, NT және салыстырмалы түрде ескірген XP, Hyper-Threading-пен үйлесімділіктің қажетті шарты ACPI қолдауы болып табылады. Егер ол ОЖ-да жүзеге асырылмаса, онда сәйкес модульдермен қалыптасатын барлық есептеу ағындары компьютермен таныла бермейді. Windows XP тұтастай алғанда қарастырылып отырған технологияның артықшылықтарын пайдалануды қамтамасыз ететінін ескеріңіз. Сондай-ақ көп ағынды алгоритмдердің ДК иесі пайдаланатын қолданбаларда жүзеге асырылуы өте қажет.

Кейде сізге компьютер қажет болуы мүмкін - егер сіз оған бастапқыда болған және технологиямен үйлесімді емес процессорлардың орнына Hyper-Threading қолдауы бар процессорларды орнатсаңыз. Дегенмен, операциялық жүйелердегідей, егер пайдаланушыда заманауи компьютер немесе кем дегенде бірінші Hyper Threading процессорларына сәйкес аппараттық құрамдас бөліктер болса, біз жоғарыда атап өткеніміздей, Core желісінде енгізілген және бейімделген болса, ешқандай проблемалар болмайды. оған аналық платалардағы чипсеттер чиптің сәйкес функцияларын толығымен қолдайды.

Жеделдету критерийлері

Аппараттық және бағдарламалық құрамдас бөліктер деңгейіндегі компьютер Hyper-Threading-пен үйлесімді болмаса, онда бұл технология теориялық тұрғыдан оның жұмысын тіпті баяулатуы мүмкін. Бұл жағдай кейбір IT мамандарының Intel компаниясының шешімінің келешегіне күмәндануына әкелді. Олар бұл технологиялық секіріс емес, Hyper Threading концепциясының негізінде жатқан маркетингтік қадам деп шешті, ол архитектурасына байланысты компьютерді айтарлықтай жылдамдатуға қабілетті емес. Бірақ сыншылардың күмәнін Intel инженерлері тез арада сейілтті.

Сонымен, технологияны сәтті қолданудың негізгі шарттары:

Енгізу/шығару жүйесі арқылы Hyper-Threading қолдауы;

Аналық платаның сәйкес типтегі процессормен үйлесімділігі;

Операциялық жүйе және онда жұмыс істейтін арнайы қолданба арқылы технологияны қолдау.

Алғашқы екі тармақта қандай да бір нақты мәселелер болмаса, Hyper-Threading бағдарламасымен үйлесімділік тұрғысынан кейбір қабаттасулар әлі де болуы мүмкін. Бірақ айта кету керек, егер қолданба, мысалы, екі ядролы процессорлармен жұмысты қолдаса, онда ол Intel технологиясымен үйлесімді, дерлік кепілдік береді.

Кем дегенде, егер Intel Hyper Threading модульдері процессорда жұмыс істесе, екі ядролы микросұлбаларға бейімделген бағдарламалардың өнімділігін шамамен 15-18% -ға арттыруды растайтын зерттеулер бар. Біз оларды қалай өшіру керектігін білеміз (егер пайдаланушы технологияны пайдаланудың орындылығына күмәнданса). Бірақ олардың пайда болуының нақты себептері өте аз болуы мүмкін.

Hyper-Threading-тің практикалық пайдалылығы

Қарастырылып отырған технология Intel-ге айтарлықтай әсер етті ме? Бұл мәселе бойынша әртүрлі пікірлер бар. Бірақ көптеген адамдар Hyper-Threading технологиясының танымал болғаны соншалық, бұл шешім көптеген серверлік жүйелер өндірушілері үшін таптырмайтын болды және оны қарапайым ДК пайдаланушылары да оң қабылдады.

Аппараттық мәліметтерді өңдеу

Технологияның басты артықшылығы оның аппараттық форматта жүзеге асырылуында. Яғни, есептеулердің негізгі бөлігі микросұлбаның негізгі ядросының деңгейіне берілетін бағдарламалық алгоритмдер түрінде емес, арнайы модульдерде процессордың ішінде орындалатын болады - бұл микросұлбаның жалпы өнімділігінің төмендеуін білдіреді. ДК. Жалпы, IT сарапшыларының пікірінше, Intel инженерлері технологияны әзірлеудің басында анықтаған мәселені - процессордың жұмысын тиімдірек етуді шеше алды. Шынында да, сынақтар көрсеткендей, пайдаланушы үшін іс жүзінде маңызды көптеген тапсырмаларды шешу кезінде Hyper-Threading қолдану жұмысты айтарлықтай жылдамдатуға мүмкіндік берді.

Қарастырылып отырған технологияны қолдау модульдерімен жабдықталған 4 микросұлбаның ішінде бірінші модификацияларға қарағанда әлдеқайда тиімді жұмыс істегенін атап өтуге болады. Бұл көбінесе ДК-нің нақты көп тапсырмалы режимде жұмыс істеу қабілетінде көрінді - бірнеше түрлі типтегі Windows қолданбалары, және олардың біреуінің жүйелік ресурстарды тұтынуының артуына байланысты басқаларының жылдамдығының төмендеуі өте қажет емес.

Әртүрлі тапсырмаларды бір уақытта шешу

Осылайша, Hyper-Threading қолдауы бар процессорлар онымен үйлесімсіз микросұлбаларға қарағанда, бір уақытта, мысалы, браузерді іске қосуға, музыка ойнауға және құжаттармен жұмыс істеуге жақсы бейімделген. Әрине, бұл артықшылықтардың барлығын пайдаланушы тәжірибеде ДК-нің бағдарламалық және аппараттық құрамдас бөліктері осы жұмыс режимімен жеткілікті түрде үйлесімді болған жағдайда ғана сезінеді.

Ұқсас оқиғалар

Hyper-Threading көп ағынды есептеулер арқылы ДК жұмысын жақсартуға арналған жалғыз технология емес. Оның аналогтары бар.

Мысалы, IBM шығарған POWER5 процессорлары да көп ағымды қолдайды. Яғни, әрқайсысы (барлығы 2 сәйкес элемент орнатылған) 2 ағындағы тапсырмаларды орындай алады. Осылайша, микросұлба бір уақытта 4 есептеу ағынын өңдейді.

Сондай-ақ, AMD-де көп ағынды концепциялар саласында тамаша жұмыс бар. Сонымен, Buldozer архитектурасында Hyper-Threading-ге ұқсас алгоритмдер қолданылатыны белгілі. AMD шешімінің ерекшелігі ағындардың әрқайсысы бөлек процессор блоктарын өңдейді. Екінші деңгей жалпы болып қала бергенде. Ұқсас тұжырымдамалар ноутбуктер мен шағын компьютерлерге бейімделген AMD әзірлеген Bobcat архитектурасында жүзеге асырылады.

Әрине, 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орта таптың процессорларында және тіпті бюджеттік және портативтіде пайда болды. Барлық серияларда қолданылады негізгі i (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, сіз әрқашан hyperthreading технологиясын өшіре аласыз.

2015 жылдың 20 қаңтары сағат 19:43

Hyper-Threading туралы толығырақ

  • IT жүйелерін тестілеу,
  • Бағдарламалау

Hyper-threading технологиясы контекстінде жад өнімділігін бағалау қажет болған уақыт болды. Оның әсері әрқашан оң бола бермейді деген қорытындыға келдік. Бос уақыт кванты пайда болған кезде, зерттеуді жалғастыруға және машиналық циклдар мен биттердің дәлдігімен жүріп жатқан процестерді қарастыруға ниет пайда болды. бағдарламалық қамтамасыз етуөзіндік дамуы.

Зерттелген платформа

Эксперимент объектісі – ASUS ноутбугы Intel Core i7-4700HQ процессоры бар N750JK. Сағат жиілігі 2,4 ГГц, Intel Turbo Boost режимімен 3,4 ГГц-ке дейін артады. 16 гигабайт орнатылған жедел жадыҚосарна режимінде жұмыс істейтін DDR3-1600 (PC3-12800). Операциялық жүйе - Microsoft Windows 8.1 64 бит.

Сурет 1 Зерттелетін платформаның конфигурациясы.

Зерттелетін платформаның процессорында 4 ядро ​​бар, олар Hyper-Threading технологиясы қосылған кезде 8 ағынды немесе логикалық процессорларды аппараттық қолдауды қамтамасыз етеді. Платформаның микробағдарламасы бұл ақпаратты MADT (Multiple APIC Description Table) ACPI кестесі арқылы операциялық жүйеге береді. Платформада тек бір жедел жад контроллері болғандықтан, процессор өзектерінің жад контроллерлеріне жақындығын жариялайтын SRAT (Жүйе ресурстарының жақындығы кестесі) жоқ. Әлбетте, бұл ноутбук NUMA платформасы емес, бірақ операциялық жүйе, біріздендіру мақсатында оны NUMA түйіндері = 1 жолында көрсетілгендей бір домені бар NUMA жүйесі ретінде қарастырады. Біздің эксперименттеріміз үшін іргелі факт бірінші деңгейлі деректер кэшінің өлшемі үшін 32 килобайт болуы болып табылады. төрт ядроның әрқайсысы. Бір ядроны ортақ пайдаланатын екі логикалық процессор L1 және L2 кэштерін бөліседі.

Тергеу операциясы

Біз деректер блогын оқу жылдамдығының оның өлшеміне тәуелділігін зерттейміз. Ол үшін біз ең өнімді әдісті таңдаймыз, атап айтқанда, VMOVAPD AVX нұсқаулығын пайдаланып 256-разрядты операндтарды оқу. Диаграммаларда X осі блок өлшемін, ал Y осі оқу жылдамдығын көрсетеді. L1 кэшінің өлшеміне сәйкес келетін X нүктесіне жақын жерде біз иілу нүктесін көреміз деп күтеміз, өйткені өңделетін блок кэштен шыққаннан кейін өнімділік төмендеуі керек. Біздің сынақта, көп ағынды жағдайда, 16 басталған ағындардың әрқайсысы жеке мекенжай ауқымымен жұмыс істейді. Қолданбадағы Hyper-Threading технологиясын басқару үшін әрбір ағын әрбір логикалық процессор бір битке сәйкес келетін масканы орнататын SetThreadAffinityMask API функциясын пайдаланады. Биттің бір мәні көрсетілген процессорды көрсетілген ағынмен пайдалануға мүмкіндік береді, нөлдік мән оған тыйым салады. Зерттелетін платформаның 8 логикалық процессоры үшін 11111111b маскасы барлық процессорларды пайдалануға мүмкіндік береді (Hyper-Threading қосылған), маска 01010101b әрбір ядрода бір логикалық процессорды пайдалануға мүмкіндік береді (Hyper-Threading өшірілген).

Графиктерде келесі қысқартулар қолданылады:

MBPS (секундына мегабайт)секундына мегабайттағы оқу жылдамдығын блоктау;

CPI (нұсқау бойынша сағаттар)бір нұсқаудағы циклдар саны;

TSC (уақыт белгісін есептегіш)процессор циклінің есептегіші.

Ескертпе: TSC регистрінің тактілік жылдамдығы Turbo Boost режимінде жұмыс істеген кезде процессордың тактілік жылдамдығына сәйкес келмеуі мүмкін. Бұл нәтижелерді интерпретациялау кезінде ескерілуі керек.

Графиктердің оң жағында бағдарлама ағындарының әрқайсысында орындалатын мақсатты операция циклінің денесін құрайтын нұсқаулардың он алтылық үйіндісі немесе осы кодтың алғашқы 128 байты бейнеленген.

№1 тәжірибе. Бір жіп



2-сурет Бір тарауда оқу

Максималды жылдамдық секундына 213563 мегабайт. Иілу нүктесі шамамен 32 килобайт блок өлшемінде орын алады.

№2 тәжірибе. 4 процессордағы 16 ағын, Hyper-Threading өшірілген



3-сурет Он алты тарауда оқу. Қолданылатын логикалық процессорлардың саны төрт

Гипер-ағынды қосу өшірілген. Максималды жылдамдық секундына 797598 мегабайт. Иілу нүктесі шамамен 32 килобайт блок өлшемінде орын алады. Күтілгендей, бір жіппен оқумен салыстырғанда, жұмыс істейтін ядролардың саны бойынша жылдамдық шамамен 4 есе өсті.

№3 тәжірибе. 8 процессордағы 16 ағын, Hyper-Threading қосылған



4-сурет Он алты тарауда оқу. Қолданылатын логикалық процессорлар саны сегіз

Гипер-ағынды қосу қосылды. Секундына 800722 мегабайт максималды жылдамдығы Hyper-Threading-ті қосу нәтижесінде дерлік өскен жоқ. Үлкен минус - иілу нүктесі шамамен 16 килобайт блок өлшемінде орын алады. Hyper-Threading қосу максималды жылдамдықты сәл арттырды, бірақ қазір жылдамдықтың төмендеуі блок өлшемінің жартысында орын алады - шамамен 16 килобайт, сондықтан орташа жылдамдық айтарлықтай төмендеді. Бұл таңқаларлық емес, әрбір ядроның өзінің L1 кэші бар, ал сол ядродағы логикалық процессорлар оны бөліседі.

қорытындылар

Зерттелетін операция көп ядролы процессорда өте жақсы масштабталады. Себептері мынада: ядролардың әрқайсысында бірінші және екінші деңгейлердің жеке кэш-жады бар, мақсатты блоктың өлшемі кэш жадының өлшемімен салыстырылады және ағындардың әрқайсысы өз адрестерінің диапазонымен жұмыс істейді. Академиялық мақсаттар үшін біз мұндай жағдайларды синтетикалық сынақта жасадық, өйткені нақты қолданбалар әдетте идеалды оңтайландырудан алыс. Бірақ Hyper-Threading-ті қосу, тіпті осы жағдайларда да теріс әсер етті, шың жылдамдығының шамалы жоғарылауымен блоктарды өңдеу жылдамдығы айтарлықтай жоғалады, олардың өлшемі 16-дан 32-ге дейін. килобайт.

Біз бір процессорлы Xeon жүйелерін пайдаланудың мағынасы жоқ екенін жазғанбыз, өйткені жоғары бағада олардың өнімділігі бірдей жиіліктегі Pentium 4-пен бірдей болады. Енді мұқият тексергеннен кейін бұл мәлімдемені сәл өзгертуге тура келетін шығар. Prestonia ядросы бар Intel Xeon жүйесінде енгізілген Hyper-Threading технологиясы шынымен де жұмыс істейді және айтарлықтай әсер етеді. Оны пайдалану кезінде көптеген сұрақтар туындаса да ...

Өнімділік беріңіз

«Тезірек, одан да жылдам ...». Өнімділік үшін жарыс жылдар бойы жалғасуда, кейде компьютер құрамдастарының қайсысы жылдамырақ екенін айту қиын. Бұл үшін барған сайын жаңа жолдар ойлап табылуда, ал көшкінге ұқсас процеске соғұрлым білікті еңбек пен жоғары сапалы ми құйылады.

Өнімділікті үнемі арттыру, әрине, қажет. Кем дегенде, бұл пайдалы бизнес және пайдаланушыларды кешегі «өте өнімді процессорды» ертеңгі «бұдан да супер...» жаңартуға ынталандырудың жақсы жолы бар. Мысалы, синхронды сөйлеуді тану және басқа тілге ілеспе аударма жасау – бұл әркімнің арманы емес пе? Немесе «кино» дерлік сапалы әдеттен тыс шынайы ойындар (зейінді толығымен өзіне аударып, кейде психиканың елеулі өзгерістеріне әкеледі) - бұл көптеген жас пен кәрі ойыншылардың қалауы емес пе?

Бірақ бұл жағдайда техникалық аспектілерге назар аудара отырып, маркетингтік аспектілерді қалдырайық. Оның үстіне, бәрі соншалықты мұңды емес: шұғыл тапсырмалар (серверлік қосымшалар, ғылыми есептеулер, модельдеу және т.б.) бар, мұнда бәрі көбірек. жоғары өнімділік, атап айтқанда орталық процессорлар, шын мәнінде қажет.

Сонымен, олардың өнімділігін арттырудың жолдары қандай?

Сағатты күшейту. Әрі қарай «жұқтыруға» болады технологиялық процессжәне жиілігін арттырыңыз. Бірақ, өзіңіз білетіндей, бұл оңай емес және жылуды тарату проблемалары сияқты жанама әсерлердің барлық түрлеріне толы.

Процессор ресурстарын ұлғайту- мысалы, кэш көлемін ұлғайту, жаңа блоктарды қосу (Орындау бірліктері). Мұның бәрі транзисторлар санының ұлғаюына, процессордың күрделілігіне, кристалдың аумағының ұлғаюына және, тиісінше, құнына әкеледі.

Сонымен қатар, алдыңғы екі әдіс, әдетте, өнімділіктің сызықтық өсуін бермейді. Бұл Pentium 4 мысалында жақсы белгілі: тармақты болжаудағы және үзілістердегі қателер ұзын құбырдың қалпына келтірілуін тудырады, бұл жалпы өнімділікке айтарлықтай әсер етеді.

көп өңдеу. Бірнеше процессорларды орнату және олардың арасында жұмысты бөлу жиі тиімді. Бірақ бұл тәсіл өте арзан емес - әрбір қосымша процессор жүйенің құнын арттырады, ал қос аналық плата әдеттегіден әлдеқайда қымбат (төрт немесе одан да көп процессорларды қолдайтын аналық платаларды айтпағанда). Бұған қоса, барлық қосымшалар шығынды ақтайтындай көп өңдеуден пайда таба бермейді.

«Таза» көп өңдеуден басқа, қосымшаның орындалуын жылдамдатуға мүмкіндік беретін бірнеше «аралық» опциялар бар:

Чипті көп өңдеу (CMP)- екі процессор өзегі физикалық түрде бір чипте орналасқан, жалпы немесе бөлек кэшті пайдаланады. Әрине, кристалдың өлшемі өте үлкен болып шығады және бұл құнына әсер етпеуі мүмкін емес. Осы «қос» процессорлардың бірнешеуі мультипроцессорлық жүйеде де жұмыс істей алатынын ескеріңіз.

Time Slice Multithreading. Процессор белгіленген аралықтармен бағдарлама ағындары арасында ауысады. Үстеме шығындар кейде өте ауыр болуы мүмкін, әсіресе процесс күтіп тұрса.

Оқиғаны қосу көп ағынды. Ұзақ үзілістер орын алған кезде тапсырманы ауыстыру, мысалы, «кэшті жіберіп алу» (кэшті жіберіп алу), олардың үлкен саны серверлік қолданбаларға тән. Бұл жағдайда деректерді салыстырмалы түрде баяу жадтан кэшке жүктеуді күтетін процесс тоқтатылады, бұл басқа процестер үшін CPU ресурстарын босатады. Дегенмен, Time-Slice Multithreading сияқты, Оқиғаны қосудың көп ағыны әрқашан процессор ресурстарын оңтайлы пайдалануға қол жеткізе бермейді, атап айтқанда тармақтарды болжау қателеріне, нұсқауларға тәуелділіктерге және т.б.

Бір мезгілде көп ағынды. Бұл жағдайда бағдарлама ағындары бір процессорда «бір уақытта», яғни олардың арасында ауыспай орындалады. Орталық процессордың ресурстары «пайдаланбасаң, басқаға бер» қағидасы бойынша динамикалық түрде таратылады. Дәл осы көзқарас негізінде жатыр Intel технологиялары Hyper-Threading, енді біз оған жүгінеміз.

Hyper-Threading қалай жұмыс істейді

Өздеріңіз білетіндей, қазіргі «есептеу парадигмасы» қамтиды көп ағынды есептеулер. Бұл бастапқыда мұндай тұжырымдама бар серверлерге ғана емес, сонымен қатар жұмыс станциялары мен жұмыс үстелі жүйелеріне де қатысты. Жіптер бірдей немесе әртүрлі қолданбаларға тиесілі болуы мүмкін, бірақ әрқашан дерлік бірден бірнеше белсенді ағын болады (мұны көру үшін Windows 2000/XP жүйесінде Тапсырмалар реттеушісін ашып, ағындар санының дисплейін қосу жеткілікті). Сонымен қатар, кәдімгі процессор бір уақытта ағындардың біреуін ғана орындай алады және олардың арасында үнемі ауысуға мәжбүр болады.

Бірінші рет Hyper-Threading технологиясы Intel Xeon MP (Foster MP) процессорында жүзеге асырылды, ол «жұмыс істейді». IDF көктемінде 2002 жылы ресми түрде ұсынылған Xeon MP Pentium 4 Willamette өзегін пайдаланады, 256 КБ L2 кэш және 512 КБ/1 Мбайт L3 кэш бар және 4 процессорлық конфигурацияларды қолдайды. Hyper-Threading қолдауы жұмыс станцияларына арналған Intel Xeon процессорында да бар (Prestonia ядросы, 512 Кбайт L2 кэш), ол нарыққа Xeon MP қарағанда сәл ертерек кірді. Біздің оқырмандарымыз Intel Xeon жүйесіндегі қос процессорлық конфигурациялармен бұрыннан таныс, сондықтан біз мысал ретінде осы процессорларды пайдаланып Hyper-Threading мүмкіндіктерін қарастырамыз - теориялық және практикалық. Қалай болғанда да, «қарапайым» Xeon 4 процессорлы жүйелердегі Xeon MP-ге қарағанда қарапайым және сіңімді болады...

Hyper-Threading жұмыс істеу принципі кез келген уақытта программалық кодты орындау кезінде процессор ресурстарының бір бөлігі ғана пайдаланылатындығына негізделген. Пайдаланылмаған ресурстарды жұмыспен де жүктеуге болады - мысалы, параллель орындау үшін тағы бір қосымшаны (немесе сол қолданбаның басқа ағынын) пайдалануға болады. Бір физикалық Intel Xeon процессорында екі логикалық процессор (LP - Logical Processor) қалыптасады, олар орталық процессордың есептеу ресурстарын ортақ пайдаланады. Операциялық жүйе мен қосымшалар дәл екі процессорды «көреді» және толыққанды екі процессорлы жүйедегідей жұмысты олардың арасында тарата алады.

Hyper-Threading енгізу мақсаттарының бірі тек бір белсенді ағынның қалыпты процессордағыдай жылдамдықпен жұмыс істеуіне мүмкіндік беру болып табылады. Ол үшін процессордың екі негізгі жұмыс режимі бар: бір тапсырма (СТ) және көп тапсырма (МТ). ST режимінде тек бір логикалық процессор белсенді және қолда бар ресурстарды бөлінбеген түрде пайдаланады (ST0 және ST1 режимдері); басқа LP HALT командасы арқылы тоқтатылады. Бағдарламаның екінші ағыны пайда болған кезде бос тұрған логикалық процессор іске қосылады (үзу арқылы) және физикалық процессор MT режиміне қойылады. HALT пәрменімен пайдаланылмаған LP-ді тоқтату операциялық жүйенің жауапкершілігі болып табылады, ол Hyper-Threading жоқ жағдайдағыдай бір ағынның бірдей жылдам орындалуына жауап береді.

Екі LP әрқайсысы үшін әртүрлі типтегі регистрлердің күйін қамтитын Архитектура күйі (АС) сақталады - жалпы мақсаттағы, бақылау, APIC және қызмет көрсету. Әрбір LP-де өзінің APIC (үзу контроллері) және сегіз IA-32 жалпы мақсаттағы регистрлер мен 128 регистрлер арасындағы сәйкестікті қадағалайтын Регистр бүркеншік аттары кестесі (RAT) тұжырымдамасы енгізілген дұрыс жұмыс үшін регистрлер жинағы бар. физикалық процессор регистрлері (әр LP үшін бір RAT).

Екі ағынды іске қосқан кезде келесі нұсқау көрсеткіштерінің екі сәйкес жиынына қолдау көрсетіледі. Нұсқаулардың көп бөлігі Trace Cache (TC), онда олар декодталған түрде сақталады және екі белсенді LP әр сағат сайын ТС-ке кезекпен қол жеткізеді. Сонымен қатар, тек бір LP белсенді болғанда, ол циклдар бойынша араласпай ТК-ға эксклюзивті қол жеткізуге ие болады. Сол сияқты, Microcode ROM қол жеткізу орын алады. Нұсқаулар кэшінде қажетті нұсқаулар болмаған кезде іске қосылатын ITLB блоктары (Instruction Translation Look-side Buffer) қайталанады және әрқайсысы өз ағыны үшін нұсқауларды жеткізеді. IA-32 Instruction Decode нұсқаулығын декодтау блогы ортақ пайдаланылады және нұсқауларды декодтау екі ағын үшін де қажет болған жағдайда, ол оларға бір-бірден (қайтадан әр сағатта) қызмет етеді. Uop Queue және Allocator блоктары екіге бөлінген, элементтердің жартысы әрбір LP үшін бөлінген. 5 данадан тұратын жоспарлаушылар LP0 / LP1 тиесілілігіне қарамастан декодталған командалардың (Uops) кезектерін өңдейді және қажетті Орындау бірліктерімен орындалатын тікелей пәрмендер - біріншінің орындалуына дайындығы мен екіншісінің болуына байланысты. Барлық деңгейдегі кэштер (Xeon үшін L1/L2, сондай-ақ Xeon MP үшін L3) екі LP арасында толығымен ортақ пайдаланылады, алайда деректердің тұтастығын қамтамасыз ету үшін DTLB (Data Translation Look-side Buffer) жазбалары файлдағы дескрипторлармен қамтамасыз етіледі. логикалық процессор идентификаторларының нысаны.

Осылайша, екі логикалық процессордың нұсқаулары бір физикалық процессордың ресурстарында бір уақытта орындалуы мүмкін, олар төрт класқа бөлінеді:

  • қайталанатын (қайталанған);
  • толық ортақ (Толық ортақ);
  • элементтердің дескрипторларымен (Entry Tagged);
  • ST0/ST1 немесе МТ жұмыс режиміне байланысты динамикалық бөлінген (Бөлінген).

Дегенмен, мультипроцессорлық жүйелерде жеделдетілетін қолданбалардың көпшілігін Hyper-Threading қосылған процессорда ешбір өзгертулерсіз де жеделдетуге болады. Бірақ проблемалар да бар: мысалы, егер бір процесс күту циклінде болса, ол физикалық процессордың барлық ресурстарын ала алады, екінші LP жұмыс істеуіне жол бермейді. Осылайша, Hyper-Threading пайдалану кезінде өнімділік кейде төмендеуі мүмкін (20% дейін). Бұған жол бермеу үшін Intel бос күту циклдерінің орнына PAUSE нұсқаулығын пайдалануды ұсынады (Pentium 4-тен бастап IA-32-де енгізілген). Сондай-ақ компиляция кезінде кодты автоматты және жартылай автоматты оңтайландыру бойынша күрделі жұмыс жүргізілуде - мысалы, Intel OpenMP C ++ / Fortran Compilers () сериясының компиляторлары осыған байланысты айтарлықтай жетістіктерге жетті.

Intel компаниясының пікірінше, Hyper-Threading-ті бірінші енгізудің тағы бір мақсаты транзисторлар санының өсуін, өлшенген аумақты және қуат тұтынуды азайту және өнімділікті айтарлықтай арттыру болды. Бұл міндеттеменің бірінші бөлігі қазірдің өзінде орындалды: Xeon/Xeon MP-ге Hyper-Threading қолдауын қосу штамп аумағын және қуат тұтынуды 5%-дан азырақ арттырды. Екінші бөліммен (спектакль) не болды, біз әлі тексерген жоқпыз.

Практикалық бөлім

Белгілі себептерге байланысты біз Hyper-Threading қосылған Xeon MP жүйесінде 4 процессорлы сервер жүйелерін сынамадық. Біріншіден, бұл айтарлықтай еңбекті қажет етеді. Екіншіден, егер біз мұндай ерлік туралы шешім қабылдасақ, ресми мәлімдемеден кейін бір ай өтпей жатып, бұл қымбат жабдықты алу мүлдем мүмкін емес. Сондықтан, осы процессорлардың алғашқы сынақтары жүргізілген екі Intel Xeon 2.2 ГГц жүйесімен бір жүйемен шектелу туралы шешім қабылданды (мақала басындағы сілтемені қараңыз). Жүйе негізінде құрылды аналық плата Supermicro P4DC6+ ( Intel чипсеті i860), құрамында 512 МБ RDRAM, GeForce3 чипіндегі бейне карта (64 МБ DDR, Detonator 21.85 драйверлері), қатты диск батыс цифры WD300BB және 6X DVD-ROM; Операциялық жүйе ретінде Windows 2000 Professional SP2 пайдаланылды.

Біріншіден, бірнеше жалпы әсер. Іске қосу кезінде Prestonia ядросы бар бір Xeon орнатқанда жүйелік BIOSекі процессордың болуы туралы хабарламаны көрсетеді; екі процессор орнатылған болса, пайдаланушы төрт процессор туралы хабарды көреді. Операциялық жүйе әдетте «екі процессорды» да таниды, бірақ тек екі шарт орындалған жағдайда ғана.

Біріншіден, CMOS Setup жүйесінде, екіншісі BIOS нұсқалары Supermicro P4DCxx тақталары Hyper-Threading қосу элементін енгізді, онсыз ОЖ тек физикалық процессорларды таниды. Екіншіден, ACPI операциялық жүйеге қосымша логикалық процессорлар бар екенін айту үшін қолданылады. Сондықтан, Hyper-Threading мүмкіндігін қосу үшін CMOS Setup ішінде ACPI опциясын қосу керек және ОЖ-ның өзі үшін де ACPI қолдауы бар HAL (Аппараттық абстракция қабаты) орнатылуы керек. Бақытымызға орай, Windows 2000 жүйесінде HAL стандартын стандартты компьютерден (немесе MPS Uni-/Multiprocessor PC) ACPI Uni-/Multiprocessor PC-ге өзгерту оңай - құрылғы менеджеріндегі «компьютер драйверін» өзгерту арқылы. Сонымен қатар, Windows XP үшін ACPI HAL жүйесіне көшудің жалғыз заңды жолы бар орнатудың үстіне жүйені қайта орнату болып табылады.

Бірақ қазір барлық дайындықтар жасалды және біздің Windows 2000 Pro оның екі процессорлы жүйеде жұмыс істейтініне нық сенеді (бірақ шын мәнінде бір ғана процессор орнатылған). Енді, әдеттегідей, тестілеудің мақсаттары туралы шешім қабылдау уақыты келді. Сондықтан біз қалаймыз:

  • Hyper-Threading-тің әртүрлі сыныптағы қолданбалардың өнімділігіне әсерін бағалау.
  • Бұл әсерді екінші процессорды орнату әсерімен салыстырыңыз.
  • Екінші LP бос тұрған кезде белсенді логикалық процессорға «әділ» ресурстар қалай берілгенін тексеріңіз.

Өнімділікті бағалау үшін біз жұмыс станцияларының жүйелерін тестілеуде пайдаланылған оқырмандарға бұрыннан таныс қосымшалар жинағын алдық. Мүмкін, соңынан бастайық және логикалық процессорлардың «теңдігін» тексерейік. Барлығы өте қарапайым: біз алдымен Hyper-Threading өшірілген бір процессорда сынақтарды орындаймыз, содан кейін Hyper-Threading қосулы және екі логикалық процессордың біреуін ғана пайдалана отырып (Task Manager көмегімен) процесті қайталаймыз. Бұл жағдайда бізді тек салыстырмалы мәндер қызықтыратындықтан, барлық сынақтардың нәтижелері «үлкенірек - жақсы» пішінге келтіріледі және қалыпқа келтіріледі (бірлік ретінде Hyper-Threading жоқ бір процессорлы жүйенің көрсеткіштері алынады).

Көріп отырғаныңыздай, Intel компаниясының уәделері осы жерде орындалады: тек бір белсенді ағынмен екі LP-нің әрқайсысының өнімділігі Hyper-Threading жоқ физикалық процессордың өнімділігіне тура тең. Бос тұрған LP (LP0 және LP1 екеуі де) іс жүзінде тоқтатылды және ортақ ресурстар, алынған нәтижелер бойынша бағалауға болатындай, белсенді LP пайдалануға толығымен ауыстырылады.

Сондықтан, біз бірінші қорытынды жасаймыз: екі логикалық процессордың құқықтары бірдей және Hyper-Threading-ті қосу бір ағынның жұмысына «кедергі жасамайды» (бұл өзі жаман емес). Енді осы қосу «көмектесетінін» көрейік, егер солай болса, қайда және қалай?

көрсету. 3D Studio MAX 4.26, Lightwave 7b және A|W Maya 4.0.1 3D-модельдеу пакеттеріндегі төрт сынақтың нәтижелері ұқсастығына байланысты бір диаграммаға біріктірілген.

Барлық төрт жағдайда (Lightwave үшін - екі түрлі көрініс) Hyper-Threading өшірілген бір процессор болған кезде CPU жүктемесі үнемі дерлік 100% сақталады. Дегенмен, Hyper-Threading қосулы кезде, көріністерді есептеу жеделдетіледі (нәтижесінде бізде процессорды 100%-дан астам пайдалану туралы әзіл де болды). Үш сынақта біз Hyper-Threading өнімділігінің 14--18% жоғарылауын көре аламыз - бір жағынан, екінші процессормен салыстырғанда көп емес, бірақ екінші жағынан, бұл «еркін» әсерді ескере отырып, өте жақсы. осы әсерден. 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 ГГц (Hyper-Threading өшірілген);
  • 512 МБ RDRAM;
  • Supermicro P4DC6+ аналық платасы;
  • ASUS V8200 Deluxe бейне картасы (NVidia GeForce3, 64 МБ DDR SDRAM, Detonator 21.85 драйверлері);
  • Windows 2000 Professional SP2;
  • бейне режимі 1280x1024x32 bpp, 85 Гц, Vsync өшірілген.

Көк және қызыл - тиісінше CPU 0 және CPU 1 жүктеме графиктері. Ортадағы сызық соңғы процессорды пайдалану графигі болып табылады. Үш график 3D Studio MAX 4.26 екі көрініске және SPEC ViewPerf сынағының (AWadvs-04) бір бөлігіне сәйкес келеді.


CPU пайдалану: Animation 3D Studio MAX 4.26 - Anibal (манипуляторлармен).max


CPU пайдалану: Animation 3D Studio MAX 4.26 - Rabbit.max


CPU пайдалану: SPEC ViewPerf 6.1.2 - AWadvs-04

Дәл осындай үлгі OpenGL пайдаланатын көптеген басқа қолданбаларда қайталанады. Екі процессор жұмысты мүлде мазаламайды, ал процессордың жалпы пайдалануы 50-60% деңгейінде. Сонымен қатар, бір процессорлы жүйе үшін барлық осы жағдайларда CPU пайдалану сенімді түрде 100% деңгейінде сақталады.

Сондықтан көптеген OpenGL қолданбаларының қос жүйелерде жылдамырақ алынбауы таңқаларлық емес. Олардың кейде тіпті баяулауы, біздің ойымызша, толық логикалық түсініктемеге ие.

Екі логикалық процессормен өнімділіктің төмендеуі әлдеқайда маңызды екенін айта аламыз, бұл түсінікті: екі логикалық процессор бір-біріне екі физикалық процессор сияқты кедергі жасайды. Бірақ олардың жалпы өнімділігі, әрине, бұл жағдайда төмен болып шығады, сондықтан Hyper-Threading қосылғанда, ол екі физикалық процессор жұмыс істеп тұрған кездегіден де азаяды. Нәтиже болжамды және қорытынды қарапайым: «нақты» SMP сияқты Hyper-Threading кейде OpenGL үшін қарсы.

CAD қолданбалары. Алдыңғы қорытынды екі CAD сынақтарының нәтижелерімен расталады - SolidEdge V10 үшін SPECapc және SolidWorks үшін SPECapc. Hyper-Threading үшін осы сынақтардың графикалық өнімділігі ұқсас (бірақ SolidEdge V10 үшін SMP жүйесі жағдайында нәтиже сәл жоғарырақ). Бірақ процессорды жүктейтін CPU_Score сынақтарының нәтижелері сізді ойландырады: SMP-ден 5-10% өсу және Hyper-Threading-тен 14-19% баяулау.

Бірақ күннің соңында Intel кейбір жағдайларда, мысалы, бос күту циклдерін пайдаланған кезде, Hyper-Threading арқылы өнімділіктің төмендеуі мүмкін екенін шынайы түрде мойындайды. Біз мұның себебі деп болжауға болады (SolidEdge және SolidWorks кодтарын егжей-тегжейлі тексеру осы мақаланың ауқымынан тыс). Ақыр соңында, барлығы дәлелденген сенімділікті ұнататын және бағдарламалаудағы жаңа тенденцияларды ескере отырып кодты қайта жазуға асықпайтын CAD қосымшаларын жасаушылардың консерватизмін біледі.

Қорытындылау немесе «Назар аударыңыз, дұрыс сұрақ»

Hyper-Threading жұмыс істейді, бұған ешқандай күмән жоқ. Әрине, технология әмбебап емес: Hyper-Threading «жаман болып қалатын» қосымшалар бар және бұл технология тараған жағдайда оларды өзгерту қажет. Бірақ MMX және SSE-де бірдей жағдай болған жоқ па және SSE2-де бола береді?..

Дегенмен, бұл технологияны біздің шындыққа қолдану мүмкіндігі туралы сұрақ тудырады. Біз Hyper-Threading бар Xeon жүйесіндегі бір процессорлы жүйе опциясынан дереу бас тартамыз (немесе екінші процессорды сатып алуды күту үшін оны тек уақытша деп есептейміз): тіпті өнімділіктің 30% артуы ешбір жағдайда бағаны ақтамайды. тәсілі - содан кейін кәдімгі Pentium 4 сатып алған дұрыс. Қалған процессорлар саны екі немесе одан да көп.

Енді біз екі процессорлы Xeon жүйесін (мысалы, Windows 2000/XP Professional жүйесімен) сатып алып жатырмыз деп елестетейік. Екі процессор орнатылды, Hyper-Threading қосылды, BIOS төрт логикалық процессорды табады, енді шешейік ... Тоқта. Бірақ операциялық жүйеміз қанша процессорды көреді? Дұрыс, екі. Тек екі, өйткені ол жай ғана үлкен санға арналмаған. Бұл екі физикалық процессор болады, яғни барлығы Hyper-Threading өшірілгенмен бірдей жұмыс істейді - баяу емес (екі «қосымша» логикалық процессор жай ғана тоқтайды), бірақ жылдамырақ емес (қосымша сынақтармен расталған, нәтижелер үшін сілтеме жасалмайды). олардың айқындығы). Ммм, қызық емес...

Не қалды? Біздің жұмыс станциямызға Advanced Server немесе .NET серверін орнатпаңыз ба? Жоқ, жүйе барлық төрт логикалық процессорды орнатып, таниды және жұмыс істейді. Бұл жай ғана серверлік ОЖ жұмыс станциясына қарайды, жұмсақ тілмен айтқанда, сәл оғаш (қаржылық аспектілерді айтпағанда). Жалғыз ақылға қонымды жағдай - біздің екі процессорлы Xeon жүйеміз сервер ретінде әрекет ететін кезде (кем дегенде кейбір құрылысшылар Xeon процессорларының жұмыс станцияларында серверлерді шығарудан тартынбайды). Бірақ сәйкес операциялық жүйелері бар қосарлы жұмыс станциялары үшін Hyper-Threading қолдану мүмкіндігі күмән тудырады. Intel қазір логикалық емес, физикалық процессорлар санына негізделген ОЖ лицензиялауды белсенді түрде қолдайды. Талқылаулар әлі де жалғасуда және, жалпы алғанда, көп нәрсе төрт процессорды қолдайтын жұмыс станциясының ОЖ-ны көретінімізге байланысты.

Серверлермен бәрі қарапайым түрде шығады. Мысалы, Hyper-Threading қосылған екі ұялы Xeon жүйесінде орнатылған Windows 2000 Advanced Server төрт логикалық процессорды көреді және онда бірқалыпты жұмыс істейді. Hyper-Threading серверлік жүйелерге не әкелетінін бағалау үшін біз Xeon MP және бірнеше Microsoft сервер қосымшаларында екі процессорлы жүйелерге арналған Intel микропроцессорлық бағдарламалық қамтамасыз ету зертханаларының нәтижелерін ұсынамыз.

Екі процессорлы сервер үшін «тегін» өнімділікті 20-30% арттыру қызықтырудан да жоғары (әсіресе «нақты» 4 процессорлы жүйені сатып алумен салыстырғанда).

Сонымен, қазіргі уақытта Hyper-Threading-тің практикалық қолданылуы тек серверлерде мүмкін екені белгілі болды. Жұмыс станцияларына қатысты мәселе ОЖ лицензиялауымен шешімге байланысты. Hyper-Threading-тің тағы бір қосымшасы өте нақты болса да - егер жұмыс үстелі процессорлары осы технологияға қолдау көрсетсе. Мысалы (елестетіп көрейік) SMP қолдауы бар Windows 2000/XP Professional орнатылған Hyper-Threading қолдауы бар Pentium 4 жүйесінде не дұрыс емес? - серверлерден жұмыс үстелі және мобильді жүйелерге дейін.