Internet Windows Android
Kengaytirish

Giper tishlash texnologiyasi. Yana bir bor Hyper Threading haqida

Hyper-Threading texnologiyasi (HT, hyperthreading) birinchi marta 15 yil oldin - 2002 yilda Pentium 4 va Xeon protsessorlarida paydo bo'lgan va shundan beri Intel protsessorlarida paydo bo'lgan (Core i qatorida, ba'zi Atom va yaqinda Pentiumda ham), keyin g'oyib bo'ldi (uning yordami Core 2 Duo va Quad liniyalarida emas edi). Va bu vaqt ichida u afsonaviy xususiyatlarga ega bo'ldi - ularning aytishicha, uning mavjudligi protsessorning ishlashini deyarli ikki baravar oshiradi, zaif i3-larni kuchli i5-larga aylantiradi. Shu bilan birga, boshqalar XT keng tarqalgan marketing hiylasi va unchalik foydali emasligini aytishadi. Haqiqat, odatdagidek, o'rtada - ba'zi joylarda undan qandaydir ma'no bor, lekin siz ikki baravar o'sishni kutmasligingiz kerak.

Texnologiyaning texnik tavsifi

Intel veb-saytida berilgan ta'rifdan boshlaylik:

Intel® Hyper-Threading texnologiyasi (Intel® HT) har bir yadroda bir nechta ish zarrachalarining ishlashiga ruxsat berish orqali protsessor resurslaridan samaraliroq foydalanish imkonini beradi. Ishlash nuqtai nazaridan ushbu texnologiya protsessorlarning o'tkazuvchanligini oshiradi, ko'p bosqichli ilovalarning umumiy ish faoliyatini yaxshilaydi.

Umuman olganda, hech narsa aniq emasligi aniq - faqat umumiy iboralar, lekin ular texnologiyani qisqacha tavsiflaydi - HT bir jismoniy yadroga bir vaqtning o'zida bir nechta (odatda ikkita) mantiqiy iplarni qayta ishlashga imkon beradi. Lekin qanday? Giperthreadingni qo'llab-quvvatlaydigan protsessor:

  • bir vaqtning o'zida bir nechta ishlaydigan iplar haqidagi ma'lumotlarni saqlashi mumkin;
  • U bitta registrlar to'plamini (ya'ni protsessor ichidagi tezkor xotira bloklarini) va bitta uzilishni boshqarish moslamasini (ya'ni darhol e'tiborni talab qiladigan har qanday hodisaning paydo bo'lishi uchun so'rovlarni ketma-ket qayta ishlash qobiliyatiga javob beradigan o'rnatilgan protsessor blokini o'z ichiga oladi. turli qurilmalar) har bir mantiqiy protsessor uchun.
Keling, oddiy misolni ko'rib chiqaylik:

Aytaylik, protsessorning ikkita vazifasi bor. Agar protsessorda bitta yadro bo'lsa, u ularni ketma-ket, agar ikkita bo'lsa, parallel ravishda ikkita yadroda bajaradi va ikkala vazifani bajarish vaqti og'irroq vazifaga sarflangan vaqtga teng bo'ladi. Ammo protsessor bitta yadroli bo'lsa-da, lekin gipertenziyani qo'llab-quvvatlasa-chi? Yuqoridagi rasmda ko'rib turganingizdek, bitta vazifani bajarishda protsessor 100% band emas - bu vazifani bajarishda ba'zi protsessor bloklari shunchaki kerak emas, qayerdadir filialni bashorat qilish moduli xatoga yo'l qo'ymoqda (bu bir vazifani bajarish yoki yo'qligini taxmin qilish uchun kerak). shartli filial dasturda bajariladi), qayerdadir keshga kirish xatosi bor - umuman olganda, vazifani bajarishda protsessor kamdan-kam hollarda 70% dan ortiq band bo'ladi. Va HT texnologiyasi ikkinchi vazifani bo'sh bo'lmagan protsessor bloklariga "tashlaydi" va ma'lum bo'lishicha, ikkita vazifa bir vaqtning o'zida bitta yadroda qayta ishlanadi. Biroq, unumdorlikni ikki baravar oshirish aniq sabablarga ko'ra sodir bo'lmaydi - ko'pincha ikkita vazifaga protsessorda bir xil hisoblash bloki kerakligi ma'lum bo'ladi va keyin biz oddiy narsani ko'ramiz: bitta vazifa qayta ishlanayotganda, ikkinchisining bajarilishi oddiygina. bu vaqtda to'xtaydi (ko'k kvadratlar - birinchi vazifa, yashil - ikkinchi, qizil - protsessordagi bir xil blokga kirish vazifalari):

Natijada, HT bo'lgan protsessorning ikkita vazifaga sarflagan vaqti eng og'ir vazifani hisoblash uchun zarur bo'lgan vaqtdan ko'proq, lekin ikkala vazifani ketma-ket baholash uchun zarur bo'lgan vaqtdan kamroq bo'ladi.

Texnologiyaning ijobiy va salbiy tomonlari

HT-ni qo'llab-quvvatlaydigan protsessor o'limi HTsiz protsessordan o'rtacha 5% ga kattaroq ekanligini hisobga olsak (qo'shimcha registr bloklari va uzilish kontrollerlari shunchalik ko'p joy oladi) va HT-ni qo'llab-quvvatlash sizga kompyuterni yuklashga imkon beradi. protsessor 90-95% ga, keyin HTsiz 70% ga nisbatan biz o'sish eng yaxshi holatda 20-30% bo'lishini olamiz - bu ko'rsatkich juda katta.

Biroq, hamma narsa unchalik yaxshi emas: HT dan unumdorlikni oshirish umuman bo'lmaydi va hatto HT protsessorning ishlashini yomonlashtiradi. Bu ko'p sabablarga ko'ra sodir bo'ladi:

  • Kesh xotirasining etishmasligi. Misol uchun, zamonaviy to'rt yadroli i5'lar 6 MB L3 keshiga ega - har bir yadro uchun 1,5 MB. HT bilan to'rt yadroli i7-larda kesh allaqachon 8 MB ni tashkil qiladi, ammo 8 ta mantiqiy yadro mavjud bo'lganligi sababli, biz har bir yadroga atigi 1 MB olamiz - hisob-kitoblar paytida ba'zi dasturlarda bu hajm etarli bo'lmasligi mumkin, bu esa pasayishiga olib keladi. ishlash.
  • Dasturiy ta'minotni optimallashtirishning etishmasligi. Eng asosiy muammo shundaki, dasturlar mantiqiy yadrolarni jismoniy deb hisoblaydi, shuning uchun bir yadroda vazifalarni parallel ravishda bajarishda bir xil hisoblash blokiga kirish vazifalari tufayli kechikishlar ko'pincha sodir bo'ladi, bu esa natijada HT dan unumdorlikni hech narsaga kamaytiradi.
  • Ma'lumotlarga bog'liqlik. Oldingi nuqtadan kelib chiqadi - bitta vazifani bajarish uchun boshqasining natijasi talab qilinadi, lekin u hali tugallanmagan. Va yana biz to'xtab qolish vaqtini olamiz, CPU yukining kamayishi va HTdan ozgina o'sish.
Giperthreading bilan ishlay oladigan dasturlar

Ularning ko'plari bor, chunki HT hisob-kitoblari uchun bu osmondan manna - issiqlik tarqalishi deyarli oshmaydi, protsessor unchalik katta bo'lmaydi va to'g'ri optimallashtirish bilan siz 30% gacha o'sishingiz mumkin. Shuning uchun uni qo'llab-quvvatlash yukni parallellashtirish oson bo'lgan dasturlarda - arxivatorlarda (WinRar), 2D/3D modellashtirish dasturlarida (3ds Max, Maya), fotosuratlar va videolarni qayta ishlash dasturlarida (Sony Vegas, Photoshop, Corel Draw).

Hyperthreading bilan yaxshi ishlamaydigan dasturlar

An'anaga ko'ra, bu o'yinlarning aksariyati - ularni malakali parallellashtirish odatda qiyin, shuning uchun ko'pincha yuqori chastotalardagi to'rtta jismoniy yadro (i5 K-seriyasi) o'yinlar uchun etarli bo'ladi, i7-da 8 ta mantiqiy yadro bilan parallellashtirish. imkonsiz vazifa. Biroq, fon jarayonlari mavjudligini ham hisobga olish kerak va agar protsessor HT-ni qo'llab-quvvatlamasa, ularni qayta ishlash o'yinni sekinlashtirishi mumkin bo'lgan jismoniy yadrolarga to'g'ri keladi. Bu erda HT bilan i7 g'alaba qozonadi - barcha fon vazifalari an'anaviy ravishda pastroq ustuvorlikka ega, shuning uchun bir vaqtning o'zida o'yinning bir jismoniy yadrosi va fon vazifasida ishlayotganda, o'yin ustuvorlikka ega bo'ladi va fon vazifasi yadrolarni "chalg'itmaydi". o'yin bilan band - shuning uchun o'yinlarni oqimlash yoki yozib olish uchun gipertreadli i7 ni olgan ma'qul.

Natijalar

Ehtimol, bu erda faqat bitta savol qolgan - HT bilan protsessorlarni olish mantiqiymi yoki yo'qmi? Agar siz bir vaqtning o'zida beshta dasturni ochiq saqlashni va bir vaqtning o'zida o'yin o'ynashni yaxshi ko'rsangiz yoki fotosuratlar, videolar yoki modellashtirish bilan shug'ullansangiz - ha, albatta, bunga arziydi. Va agar siz og'ir dasturni ishga tushirishdan oldin qolganlarini yopishga odatlangan bo'lsangiz va qayta ishlash yoki modellashtirish bilan shug'ullanmasangiz, HT protsessoringiz sizga foyda keltirmaydi.

15.03.2013

Hyper-Threading texnologiyasi Intel protsessorlarida 10 yildan ko'proq vaqt oldin paydo bo'lgan. Va hozirda u Core protsessorlarining muhim elementi hisoblanadi. Biroq, o'yinlarda HT zarurligi haqidagi savol hali ham to'liq aniq emas. Biz o'yinchilarga Core i7 kerakmi yoki Core i5 yaxshiroqmi yoki yo'qligini tushunish uchun test o'tkazishga qaror qildik. Shuningdek, Core i3 Pentium-dan qanchalik yaxshiroq ekanligini bilib oling.


Intel tomonidan ishlab chiqilgan va esda qolarli Pentium 4 dan boshlab faqat kompaniya protsessorlarida qo'llaniladigan Hyper-Threading texnologiyasi hozirda oddiy narsa hisoblanadi. Hozirgi va oldingi avlodlarning ko'plab protsessorlari u bilan jihozlangan. U yaqin kelajakda qo'llaniladi.

Va shuni tan olish kerakki, Hyper-Threading texnologiyasi foydali va ishlashga ijobiy ta'sir ko'rsatadi, aks holda Intel o'z protsessorlarini chiziq ichida joylashtirish uchun undan foydalanmaydi. Va ikkinchi darajali element sifatida emas, balki eng muhimlaridan biri, eng muhimi. Nima haqida gapirayotganimizni tushunish uchun biz Intel protsessorlarini segmentatsiyalash tamoyilini baholashni osonlashtiradigan jadval tayyorladik.


Ko'rib turganingizdek, Pentium va Core i3 o'rtasida, shuningdek, Core i5 va Core i7 o'rtasida juda kam farqlar mavjud. Aslida, i3 va i7 modellari Pentium va i5 dan faqat yadro uchun uchinchi darajali kesh hajmida farq qiladi (albatta, soat chastotasini hisobga olmaganda). Birinchi juftlik 1,5 megabaytga, ikkinchi juftlik esa 2 megabaytga ega. Bu farq protsessorlarning ishlashiga tubdan ta'sir qila olmaydi, chunki kesh hajmidagi farq juda kichik. Shuning uchun Core i3 va Core i7 Hyper-Threading texnologiyasini qo'llab-quvvatladi, bu esa ushbu protsessorlarga tegishli ravishda Pentium va Core i5 ga nisbatan ishlash ustunligiga ega bo'lish imkonini beruvchi asosiy element hisoblanadi.

Natijada, biroz kattaroq kesh va Hyper-Threading qo'llab-quvvatlashi protsessorlar uchun narxlarni sezilarli darajada oshirish imkonini beradi. Masalan, Pentium liniyasining protsessorlari (taxminan 10 ming tenge) Core i3 (taxminan 20 ming tenge) dan ikki baravar arzon va bu jismonan, apparat darajasida ular mutlaqo bir xil va shunga mos ravishda bir xil bo'lishiga qaramay. , bir xil narxga ega. Core i5 (taxminan 30 ming tenge) va Core i7 (taxminan 50 ming tenge) o'rtasidagi narx farqi ham juda katta, garchi yosh modellarda ikki baravar kam.


Narxning bu oshishi qanchalik asosli? Hyper-Threading qanday haqiqiy daromad keltiradi? Javob uzoq vaqtdan beri ma'lum: o'sish o'zgaradi, barchasi dastur va uni optimallashtirishga bog'liq. Biz eng talabchan "uy" ilovalaridan biri sifatida HT o'yinlarda nima qila olishini tekshirishga qaror qildik. Bundan tashqari, ushbu test protsessordagi yadrolar sonining o'yin samaradorligiga ta'siri bo'yicha oldingi materialimizga ajoyib qo'shimcha bo'ladi.

Sinovlarga o'tishdan oldin Hyper-Threading texnologiyasi nima ekanligini eslaylik (yoki bilib olaylik). Intelning o'zi ko'p yillar oldin ushbu texnologiyani joriy qilganda aytganidek, bu borada ayniqsa murakkab narsa yo'q. Darhaqiqat, XTni jismoniy darajada joriy qilish uchun zarur bo'lgan narsa bitta jismoniy yadroga registrlar to'plami va uzilish boshqaruvchisini emas, balki ikkitasini qo'shishdir. Pentium 4 protsessorlarida bu qo'shimcha elementlar tranzistorlar sonini atigi besh foizga oshirdi. Zamonaviy Ivy Bridge yadrolarida (shuningdek, Sandy Bridge va kelajakdagi Haswell) hatto to'rtta yadro uchun qo'shimcha elementlar qolipni hatto 1 foizga ham oshirmaydi.


Qo'shimcha registrlar va uzilish tekshiruvi dasturiy ta'minotni qo'llab-quvvatlash bilan birgalikda operatsion tizimga bitta jismoniy yadroni emas, balki ikkita mantiqiy yadroni ko'rishga imkon beradi. Shu bilan birga, tizim tomonidan yuborilgan ikkita oqimdan ma'lumotlarni qayta ishlash hali ham bir xil yadroda sodir bo'ladi, lekin ba'zi xususiyatlar bilan. Bitta ip hali ham butun protsessorga ega, ammo ba'zi protsessor bloklari bo'shab qolishi bilanoq, ular darhol ikkinchi ipga beriladi. Buning yordamida barcha protsessor bloklarini bir vaqtning o'zida ishlatish va shu bilan uning samaradorligini oshirish mumkin bo'ldi. Intelning o'zi ta'kidlaganidek, ideal sharoitlarda ishlashning o'sishi 30 foizgacha yetishi mumkin. To'g'ri, bu ko'rsatkichlar faqat Pentium 4 uchun juda uzun quvur liniyasi uchun to'g'ri keladi, zamonaviy protsessorlar HTdan kamroq foyda ko'radi.

Ammo Hyper-Threading uchun ideal sharoitlar har doim ham shunday emas. Va eng muhimi, HT ning eng yomon natijasi - unumdorlikning kamayishi emas, balki uning pasayishi. Ya'ni, ma'lum sharoitlarda, HT bo'lmagan protsessorning ishlashi HT bo'lmagan protsessorga nisbatan pasayadi, chunki ipni bo'linish va navbatga qo'yishning ortiqcha yuki parallel iplarni qayta ishlashdan sezilarli darajada oshadi, bu ayniqsa bu mumkin. hol. Va bunday holatlar Intel xohlaganidan ko'ra tez-tez sodir bo'ladi. Bundan tashqari, Hyper-Threading-dan ko'p yillar foydalanish vaziyatni yaxshilamadi. Bu, ayniqsa, ma'lumotlarni hisoblash va ilovalar nuqtai nazaridan juda murakkab va umuman standart bo'lmagan o'yinlar uchun to'g'ri keladi.

Hyper-Threading-ning o'yin samaradorligiga ta'sirini aniqlash uchun biz yana uzoq vaqtdan beri ishlaydigan Core i7-2700K sinov protsessoridan foydalandik va yadrolarni o'chirib, HT-ni yoqish/o'chirish orqali bir vaqtning o'zida to'rtta protsessorni simulyatsiya qildik. An'anaviy tarzda ularni Pentium (2 yadro, HT o'chirilgan), Core i3 (2 yadro, HT yoqilgan), Core i5 (4 yadro, HT o'chirilgan) va Core i7 (4 yadro, HT yoqilgan) deb atash mumkin. Nima uchun shartli? Avvalo, chunki ba'zi xususiyatlarga ko'ra ular haqiqiy mahsulotlarga mos kelmaydi. Xususan, yadrolarni o'chirib qo'yish uchinchi darajadagi kesh hajmining mos ravishda qisqarishiga olib kelmaydi - uning hajmi hamma uchun 8 megabaytni tashkil qiladi. Bundan tashqari, bizning barcha "shartli" protsessorlarimiz bir xil 3,5 gigagerts chastotasida ishlaydi, bu Intel liniyasidagi barcha protsessorlar tomonidan hali erishilmagan.


Biroq, bu yaxshi tomonga, chunki barcha muhim parametrlarning doimiy o'zgarishi tufayli biz Hyper-Threading-ning o'yin samaradorligiga haqiqiy ta'sirini hech qanday shartlarsiz bilib olamiz. Va bizning "shartli" Pentium va Core i3 o'rtasidagi ishlashdagi foiz farqi, chastotalar teng bo'lsa, haqiqiy protsessorlar orasidagi farqga yaqin bo'ladi. Bundan tashqari, biz Sandy Bridge arxitekturasiga ega protsessordan foydalanayotganimiz chalkash bo'lmasligi kerak, chunki "Yalang'och ishlash - ALU va FPUlarning samaradorligini tekshirish" maqolasida o'qishingiz mumkin bo'lgan samaradorlik testlarimiz Hyper-ning ta'sirini ko'rsatdi. Core protsessorlarining so'nggi avlodlarida o'zgarishsiz qolmoqda. Ehtimol, ushbu material yaqinlashib kelayotgan Haswell protsessorlari uchun ham tegishli bo'ladi.

Sinov metodologiyasiga oid barcha savollar, shuningdek Hyper-Threading texnologiyasining ishlash xususiyatlari muhokama qilinganga o'xshaydi va shuning uchun eng qiziqarli narsaga - testlarga o'tish vaqti keldi.

Biz protsessor yadrolari sonining o'yin samaradorligiga ta'sirini o'rgangan sinovimizda ham, biz 3DMark 11 protsessor unumdorligi bo'yicha butunlay bo'shashganini va hatto bitta yadroda ham mukammal ishlashini aniqladik. Hyper-Threading xuddi shunday "kuchli" ta'sirga ega edi. Ko'rib turganingizdek, test Pentium va Core i7 o'rtasida hech qanday farqni sezmaydi, oraliq modellar haqida gapirmasa ham bo'ladi.

Metro 2033

Ammo Metro 2033 Hyper-Threading ko'rinishini aniq sezdi. Va u unga salbiy munosabatda bo'ldi! Ha, to'g'ri: ushbu o'yinda HTni yoqish ishlashga salbiy ta'sir qiladi. Kichkina ta'sir, albatta - to'rtta jismoniy yadro bilan sekundiga 0,5 kvadrat va ikkitasi bilan 0,7. Ammo bu fakt Metro 2033 Pentium Core i3 dan tezroq, Core i5 esa Core i7 dan yaxshiroq deyishga barcha asoslar beradi. Bu Hyper-Threading o'z samaradorligini har doim ham, hamma joyda ham ko'rsatmasligining tasdig'idir.

Crysis 2

Bu o'yin juda qiziqarli natijalarni ko'rsatdi. Avvalo shuni ta'kidlaymizki, Hyper-Threading ta'siri ikki yadroli protsessorlarda yaqqol ko'rinadi - Core i3 Pentiumdan deyarli 9 foizga oldinda, bu o'yin uchun juda ko'p. HT va Intel uchun g'alaba? Aslida emas, chunki Core i7 sezilarli darajada arzonroq Core i5 ga nisbatan hech qanday daromad ko'rsatmadi. Ammo buning oqilona tushuntirishi bor - Crysis 2 to'rtdan ortiq ma'lumot oqimidan foydalana olmaydi. Shu sababli, biz HT bilan ikki yadroli yaxshi o'sishni ko'rmoqdamiz - baribir, mantiqiy bo'lsa ham, to'rtta ip ikkitadan yaxshiroqdir. Boshqa tomondan, qo'shimcha Core i7 iplarini qo'yish uchun hech qanday joy yo'q edi; to'rtta jismoniy yadro etarli edi. Shunday qilib, ushbu test natijalariga ko'ra, biz Core i3-da HTning ijobiy ta'sirini qayd etishimiz mumkin, bu Pentium-dan sezilarli darajada yaxshiroq. Ammo to'rt yadroli protsessorlar orasida Core i5 yana oqilona echimga o'xshaydi.

Jang maydoni 3

Bu erda natijalar juda g'alati. Agar yadrolar soni bo'yicha testda jang maydoni mikroskopik, ammo chiziqli o'sishning namunasi bo'lsa, Hyper-Threading-ning kiritilishi natijalarga betartiblikni keltirib chiqardi. Aslida, shuni aytishimiz mumkinki, Core i3 o'zining ikkita yadrosi va HT bilan, hatto Core i5 va Core i7 dan ham eng yaxshisi bo'lib chiqdi. Bu, albatta, g'alati, lekin ayni paytda Core i5 va Core i7 yana bir xil darajada edi. Buni nima tushuntirishi aniq emas. Katta ehtimol bilan, ushbu o'yindagi sinov metodologiyasi bu erda rol o'ynadi, bu standart ko'rsatkichlarga qaraganda ko'proq xatolarga olib keladi.

Oxirgi testda F1 2011 yadrolar soniga nisbatan juda tanqidiy o'yinlardan biri bo'lib chiqdi va bu testda Hyper-Threading texnologiyasining ishlashga ajoyib ta'siri bilan bizni yana hayratda qoldirdi. Va yana, Crysis 2-da bo'lgani kabi, HT-ning kiritilishi ikki yadroli protsessorlarda juda yaxshi ishladi. Bizning shartli Core i3 va Pentium o'rtasidagi farqni qarang - bu ikki baravar ko'p! O'yinda ikkita yadro juda kamligi aniq ko'rinib turibdi va shu bilan birga uning kodi shunchalik yaxshi parallellashtirilganki, effekt ajoyib. Boshqa tomondan, siz to'rtta jismoniy yadro bilan bahslasholmaysiz - Core i5 Core i3-ga qaraganda sezilarli darajada tezroq. Ammo Core i7, avvalgi o'yinlarda bo'lgani kabi, Core i5 bilan solishtirganda ajoyib narsa ko'rsatmadi. Sababi bir xil - o'yin 4 dan ortiq ipdan foydalana olmaydi va HT-ni ishga tushirishning qo'shimcha xarajatlari Core i7 ish faoliyatini Core i5 darajasidan pastga tushiradi.

Qadimgi jangchiga Hyper-Threading kerak bo'lganidek, kirpiga futbolka kerak emas - uning ta'siri F1 2011 yoki Crysis 2dagidek aniq sezilmaydi. Biroq, biz hali ham HTni ikki yadroli protsessorda yoqishni ta'kidlaymiz. 1 ta qo'shimcha ramka olib keldi. Bu, albatta, Core i3 Pentium-dan yaxshiroq deb aytish uchun etarli emas. Hech bo'lmaganda, bu yaxshilanish ushbu protsessorlarning narxidagi farqga aniq mos kelmaydi. Core i5 va Core i7 o'rtasidagi narx farqini eslatib o'tishning hojati yo'q, chunki HT-ni qo'llab-quvvatlamaydigan protsessor yana tezroq bo'lib chiqdi. Va sezilarli darajada tezroq - 7 foizga. Nima bo'lishidan qat'iy nazar, biz yana bir bor ta'kidlaymizki, ushbu o'yin uchun to'rtta ip maksimaldir va shuning uchun bu holda HyperThreading Core i7-ga yordam bermaydi, balki to'sqinlik qiladi.

Agar siz BIOS Setup tarkibini diqqat bilan ko'rib chiqsangiz, u erda CPU Hyper Threading Technology variantini ko'rgan bo'lishingiz mumkin. Va siz Hyper Threading (yoki hyperthreading, rasmiy nomi Hyper Threading Technology, HTT) nima ekanligini va bu variant nima uchun ekanligini qiziqtirgandirsiz.

Hyper Threading - Intel tomonidan Pentium arxitektura protsessorlari uchun ishlab chiqilgan nisbatan yangi texnologiya. Amaliyot shuni ko'rsatadiki, Hyper Threading texnologiyasidan foydalanish ko'p hollarda protsessor unumdorligini taxminan 20-30% ga oshirish imkonini berdi.

Bu erda siz kompyuterning markaziy protsessori qanday ishlashini eslab qolishingiz kerak. Kompyuterni yoqsangiz va unda dasturni ishga tushirganingizdan so'ng, protsessor undagi mashina kodi deb ataladigan ko'rsatmalarni o'qiy boshlaydi. U har bir ko'rsatmani navbatma-navbat o'qiydi va ularni birin-ketin bajaradi.

Biroq, ko'pgina dasturlarda bir vaqtning o'zida bir nechta dasturiy jarayonlar mavjud. Bundan tashqari, zamonaviy operatsion tizimlar foydalanuvchiga bir vaqtning o'zida bir nechta dasturlarni ishga tushirish imkonini beradi. Va ular shunchaki yo'l qo'ymaydilar - aslida, operatsion tizimda bitta jarayon ishlayotgan vaziyatni bugungi kunda umuman tasavvur qilib bo'lmaydi. Shu sababli, eski texnologiyalar yordamida ishlab chiqilgan protsessorlar bir vaqtning o'zida bir nechta jarayonlarni qayta ishlash zarur bo'lgan hollarda past ko'rsatkichlarga ega edi.

Albatta, bu muammoni hal qilish uchun siz tizimga bir nechta jismoniy hisoblash yadrolari yordamida bir nechta protsessor yoki protsessorlarni kiritishingiz mumkin. Ammo bunday takomillashtirish qimmat, texnik jihatdan murakkab va amaliy nuqtai nazardan har doim ham samarali emas.

Rivojlanish tarixi

Shu sababli, bitta jismoniy yadroda bir nechta jarayonlarni qayta ishlashga imkon beradigan texnologiyani yaratishga qaror qilindi. Bunday holda, dasturlar uchun tizimda bir vaqtning o'zida bir nechta protsessor yadrolari mavjud bo'lib ko'rinadi.

Hyper Threading texnologiyasini qo'llab-quvvatlash birinchi marta protsessorlarda 2002 yilda paydo bo'lgan. Bular Pentium 4 oilasining protsessorlari va soat tezligi 2 GGts dan yuqori bo'lgan Xeon server protsessorlari edi. Dastlab, texnologiya Jekson kod nomini oldi, ammo keyin uning nomi Hyper Threadingga o'zgartirildi, bu keng jamoatchilikka tushunarli bo'lib, uni taxminan "super-threading" deb tarjima qilish mumkin.

Shu bilan birga, Intel ma'lumotlariga ko'ra, Hyper Threading-ni qo'llab-quvvatlaydigan protsessor kristalining sirt maydoni uni qo'llab-quvvatlamaydigan oldingi modelga nisbatan atigi 5% ga oshdi va o'rtacha unumdorlik 20% ga oshdi.

Umuman olganda, texnologiya o'zini yaxshi isbotlaganiga qaramay, Intel bir qator sabablarga ko'ra Pentium 4 o'rnini bosgan Core 2 oilasi protsessorlarida Hyper Threading texnologiyasini o'chirib qo'yishga qaror qildi. Biroq Hyper Threading keyinchalik protsessorlarda yana paydo bo'ldi. Sandy Bridge va Ivy arxitekturalari Bridge va Haswell, sezilarli darajada qayta ishlangan.

Texnologiyaning mohiyati

Hyper Threading texnologiyasini tushunish juda muhim, chunki u Intel protsessorlarining asosiy xususiyatlaridan biridir.

Protsessorlar erishgan barcha muvaffaqiyatlarga qaramay, ular bitta muhim kamchilikka ega - ular bir vaqtning o'zida faqat bitta ko'rsatmani bajarishlari mumkin. Aytaylik, siz bir vaqtning o'zida matn muharriri, brauzer va Skype kabi ilovalarni ishga tushirdingiz. Foydalanuvchi nuqtai nazaridan, ushbu dasturiy muhitni ko'p vazifali deb atash mumkin, ammo protsessor nuqtai nazaridan bu juda uzoqdir. Protsessor yadrosi hali ham ma'lum vaqt oralig'ida bitta buyruqni bajaradi. Bunday holda, protsessorning vazifasi protsessor vaqt resurslarini alohida ilovalar o'rtasida taqsimlashdir. Ko'rsatmalarning bunday ketma-ket bajarilishi juda tez sodir bo'lganligi sababli, siz buni sezmaysiz. Va sizga hech qanday kechikish yo'qdek tuyuladi.

Ammo hali ham kechikish bor. Kechikish har bir dastur protsessorni ma'lumotlar bilan ta'minlash usuli tufayli yuzaga keladi. Har bir ma'lumot oqimi ma'lum bir vaqtda kelishi va protsessor tomonidan alohida ishlov berilishi kerak. Hyper Threading texnologiyasi har bir protsessor yadrosiga ma'lumotlarni qayta ishlashni rejalashtirish va resurslarni bir vaqtning o'zida ikkita oqim uchun taqsimlash imkonini beradi.

Shuni ta'kidlash kerakki, zamonaviy protsessorlarning yadrosida bir nechta bajaruvchi qurilmalar mavjud bo'lib, ularning har biri ma'lumotlar ustida muayyan operatsiyani bajarish uchun mo'ljallangan. Bunday holda, bitta ipdan ma'lumotlarni qayta ishlash paytida ushbu ijro etuvchi qurilmalarning ba'zilari ishlamay qolishi mumkin.

Ushbu holatni tushunish uchun biz konveyerda yig'ish sexida ishlaydigan va har xil turdagi qismlarga ishlov beradigan ishchilarga o'xshatishimiz mumkin. Har bir ishchi vazifani bajarish uchun mo'ljallangan maxsus asbob bilan jihozlangan. Biroq, agar qismlar noto'g'ri ketma-ketlikda kelsa, kechikishlar yuzaga keladi, chunki ba'zi ishchilar ishni boshlash uchun navbatda turishadi. Hyper Threading-ni ilgari bo'sh turgan ishchilar o'z ishlarini boshqalardan mustaqil ravishda amalga oshirishlari uchun ustaxonada yotqizilgan qo'shimcha konveyer bilan solishtirish mumkin. Seminar hali ham bitta, lekin qismlar tezroq va samaraliroq qayta ishlanadi, buning natijasida ishlamay qolish vaqti kamayadi. Shunday qilib, Hyper Threading bitta ipdan ko'rsatmalarni bajarayotganda ishlamay qolgan protsessor ijro bloklarini yoqish imkonini berdi.

Hyper Threading-ni qo'llab-quvvatlaydigan ikki yadroli protsessorli kompyuterni yoqsangiz va "Ishlash" yorlig'i ostida Windows Task Manager-ni ochsangiz, unda to'rtta grafik topasiz. Ammo bu sizda 4 ta protsessor yadrosi bor degani emas.

Buning sababi, Windows har bir yadroda ikkita mantiqiy protsessor bor deb o'ylaydi. "Mantiqiy protsessor" atamasi kulgili tuyuladi, lekin bu jismonan mavjud bo'lmagan protsessorni anglatadi. Windows har bir mantiqiy protsessorga ma'lumotlar oqimini yuborishi mumkin, lekin faqat bitta yadro bu ishni bajaradi. Shuning uchun Hyper Threading texnologiyasiga ega bitta yadro alohida jismoniy yadrolardan sezilarli darajada farq qiladi.

Hyper Threading texnologiyasi quyidagi apparat va dasturiy ta'minotdan yordam talab qiladi:

  • Markaziy protsessor
  • Anakart chiplari
  • Operatsion tizim

Texnologiyaning afzalliklari

Endi quyidagi savolni ko'rib chiqamiz: Hyper Threading texnologiyasi kompyuter ish faoliyatini qanchalik oshiradi? Internetda kezish va matn terish kabi kundalik ishlarda texnologiyaning afzalliklari unchalik aniq emas. Ammo shuni yodda tutingki, bugungi protsessorlar shunchalik kuchliki, kundalik vazifalar protsessordan kamdan-kam hollarda to'liq foydalanadi. Bundan tashqari, ko'p narsa dasturiy ta'minot qanday yozilganiga bog'liq. Sizda bir vaqtning o'zida bir nechta dastur ishlayotgan bo'lishi mumkin, lekin agar siz yuklanish grafigiga qarasangiz, har bir yadroda faqat bitta mantiqiy protsessor ishlatilganligini ko'rasiz. Buning sababi, dasturiy ta'minot jarayonlarni yadrolar o'rtasida taqsimlashni qo'llab-quvvatlamaydi.

Biroq, murakkabroq vazifalar uchun Hyper Threading foydaliroq bo'lishi mumkin. 3D modellashtirish dasturlari, 3D o'yinlar, musiqa yoki video kodlash/dekodlash dasturlari va ko'plab ilmiy ilovalar kabi ilovalar ko'p ish zarralarini to'liq ishlatish uchun yozilgan. Shunday qilib, siz qiyin o'yinlarni o'ynash, musiqa tinglash yoki filmlarni tomosha qilish paytida Hyper Threading yoqilgan kompyuterning ishlash afzalliklarini his qilishingiz mumkin. Ishlashning o'sishi 30% gacha yetishi mumkin, ammo Hyper Threading umuman afzallik bermaydigan holatlar bo'lishi mumkin. Ba'zan, agar ikkala oqim protsessorning barcha ijro birliklarini bir xil vazifalar bilan yuklasa, unumdorlikning biroz pasayishi ham kuzatilishi mumkin.

BIOS Setup-da Hyper Threading parametrlarini o'rnatishga imkon beruvchi mos variant mavjudligiga qaytsak, aksariyat hollarda ushbu funktsiyani yoqish tavsiya etiladi. Biroq, agar kompyuteringiz xatoliklar bilan ishlayotgani yoki hatto siz kutganingizdan pastroq ishlashi aniqlansa, uni har doim o'chirib qo'yishingiz mumkin.

Xulosa

Hyper Threading-dan foydalanganda maksimal ishlash o'sishi 30% ni tashkil etganligi sababli, texnologiya protsessor yadrolari sonini ikki baravar oshirishga teng deb aytish mumkin emas. Biroq, Hyper Threading foydali variant bo'lib, kompyuter egasi sifatida sizga zarar keltirmaydi. Uning foydasi, masalan, multimedia fayllarini tahrir qilganingizda yoki kompyuteringizni Photoshop yoki Maya kabi professional dasturlar uchun ish stantsiyasi sifatida ishlatganingizda sezilarli bo'ladi.

Biz bitta protsessorli Xeon tizimlaridan foydalanish mantiqiy emasligini yozdik, chunki yuqori narxda ularning ishlashi bir xil chastotali Pentium 4 bilan bir xil bo'ladi. Endi, chuqurroq o'rganishdan so'ng, bu bayonotga biroz o'zgartirish kiritish kerak bo'ladi. Prestonia yadrosi bilan Intel Xeon-da amalga oshirilgan Hyper-Threading texnologiyasi haqiqatan ham ishlaydi va juda sezilarli effekt beradi. Uni ishlatishda ko'plab savollar tug'ilsa-da ...

Siz mahsuldorlikni berasiz

"Tezroq, hatto tezroq..." Ishlash uchun poyga yillar davomida davom etmoqda va ba'zida kompyuterning qaysi komponenti tezroq tezlashayotganini aytish qiyin. Bunga erishish uchun tobora ko'proq yangi usullar ixtiro qilinmoqda va bu ko'chkiga o'xshash jarayonga qanchalik malakali mehnat va yuqori sifatli miya sarmoya kiritilmoqda.

Ishlashning doimiy o'sishi, albatta, zarur. Hech bo'lmaganda, bu foydali biznes va foydalanuvchilarni kechagi "juda samarali protsessor" dan ertangi "yana super..." ga yangilanishga undashning har doim yaxshi usuli bor. Masalan, bir vaqtning o'zida nutqni aniqlash va boshqa tilga sinxron tarjima qilish - bu hammaning orzusi emasmi? Yoki g'ayrioddiy realistik deyarli "kino" sifatli o'yinlar (to'liq e'tiborni o'ziga jalb qiladi va ba'zan psixikada jiddiy o'zgarishlarga olib keladi) - bu yosh va qari ko'plab geymerlarning xohishi emasmi?

Ammo bu holda, marketing jihatlarini tenglamadan chiqarib, texnik jihatlarga e'tibor qarataylik. Bundan tashqari, hamma narsa unchalik ma'yus emas: dolzarb vazifalar (server ilovalari, ilmiy hisob-kitoblar, modellashtirish va boshqalar) mavjud, bu erda tobora yuqori ishlash, xususan, markaziy protsessorlar zarur.

Xo'sh, ularning samaradorligini oshirish yo'llari qanday?

Soat tezligini oshiring. Texnologik jarayonni yanada "nozik" qilish va chastotani oshirish mumkin. Ammo, siz bilganingizdek, bu oson emas va issiqlik ishlab chiqarish bilan bog'liq muammolar kabi har qanday yon ta'sirga ega.

CPU resurslarini ko'paytirish- masalan, kesh hajmini oshirish, yangi bloklarni qo'shish (Ijro birliklari). Bularning barchasi tranzistorlar sonining ko'payishiga, murakkabroq protsessorga, chip maydonining oshishiga va natijada narxga olib keladi.

Bundan tashqari, avvalgi ikkita usul, qoida tariqasida, hosildorlikning chiziqli o'sishini ta'minlamaydi. Bu Pentium 4 da yaxshi ma'lum: filiallarni bashorat qilish va uzilishlardagi xatolar uzoq quvur liniyasini qayta tiklashga olib keladi, bu umumiy ishlashga katta ta'sir qiladi.

Ko'p ishlov berish. Bir nechta protsessorlarni o'rnatish va ular o'rtasida ishni taqsimlash odatda juda samarali. Ammo bu yondashuv unchalik arzon emas – har bir qo‘shimcha protsessor tizimning narxini oshiradi va ikkilamchi anakart odatdagidan ancha qimmat (to‘rt yoki undan ortiq protsessorni qo‘llab-quvvatlaydigan platalar haqida gapirmasa ham bo‘ladi). Bundan tashqari, barcha ilovalar xarajatlarni oqlash uchun unumdorlikda ko'p ishlov berishdan foyda ko'rmaydi.

"Sof" ko'p ishlov berishdan tashqari, dasturning bajarilishini tezlashtiradigan bir nechta "oraliq" variantlar mavjud:

Chiplarni ko'p ishlov berish (CMP)- ikkita protsessor yadrosi umumiy yoki alohida keshdan foydalangan holda jismonan bitta chipda joylashgan. Tabiiyki, kristall hajmi juda katta bo'lib chiqadi va bu narxga ta'sir qilishi mumkin emas. E'tibor bering, ushbu "ikki" protsessorlarning bir nechtasi ko'p protsessorli tizimda ham ishlashi mumkin.

Vaqt tilidagi ko'p ish zarralari. Protsessor belgilangan vaqt oralig'ida dastur iplari o'rtasida almashinadi. Qo'shimcha xarajatlar ba'zan juda muhim bo'lishi mumkin, ayniqsa jarayon kutayotgan bo'lsa.

Hodisalarni yoqish. Uzoq pauzalar sodir bo'lganda vazifalarni almashtirish, masalan, kesh o'tkazib yuborilishi, ularning ko'p qismi server ilovalari uchun xosdir. Bunday holda, nisbatan sekin xotiradan keshga ma'lumotlarni yuklashni kutayotgan jarayon to'xtatiladi va boshqa jarayonlar uchun protsessor resurslarini bo'shatadi. Shu bilan birga, Time-Slice Multithreading kabi ko'p ish zarralarini yoqish har doim ham protsessor resurslaridan optimal foydalanishga erisha olmaydi, xususan, tarmoqlarni bashorat qilishdagi xatolar, ko'rsatmalarga bog'liqliklar va boshqalar.

Bir vaqtning o'zida ko'p oqim. Bunday holda, dastur iplari bitta protsessorda "bir vaqtning o'zida", ya'ni ular o'rtasida almashmasdan bajariladi. CPU resurslari dinamik ravishda taqsimlanadi, "agar siz undan foydalanmasangiz, uni boshqa birovga bering" tamoyili bo'yicha. Aynan shu yondashuv Intel Hyper-Threading texnologiyasining asosini tashkil etadi, biz hozir ko'rib chiqamiz.

Hyper-Threading qanday ishlaydi

Ma'lumki, hozirgi "hisoblash paradigmasi" ko'p tarmoqli hisoblashni o'z ichiga oladi. Bu nafaqat bunday kontseptsiya dastlab mavjud bo'lgan serverlarga, balki ish stantsiyalari va ish stoli tizimlariga ham tegishli. Mavzular bir xil yoki turli ilovalarga tegishli bo'lishi mumkin, lekin deyarli har doim bir nechta faol mavzular mavjud (buni tekshirish uchun Windows 2000/XP da Vazifa menejerini oching va mavzular soni ko'rsatkichini yoqing). Biroq, odatiy protsessor bir vaqtning o'zida faqat iplardan birini bajarishi mumkin va ular o'rtasida doimiy ravishda almashishga majbur bo'ladi.

Birinchi marta Hyper-Threading texnologiyasi sinovdan o'tkazilgan Intel Xeon MP (Foster MP) protsessorida joriy etildi. Eslatib o'tamiz, IDF Spring 2002 da rasman taqdim etilgan Xeon MP Pentium 4 Willamette bilan bog'liq yadrodan foydalanadi, 256 KB L2 kesh va 512 KB/1 MB L3 keshini o'z ichiga oladi va 4 protsessorli konfiguratsiyalarda ishlashni qo'llab-quvvatlaydi. Hyper-Threading-ni qo'llab-quvvatlash ish stantsiyasi protsessorida ham mavjud - Intel Xeon (Prestonia yadrosi, 512 KB L2 kesh), u bozorga Xeon MP-dan biroz oldinroq kirgan. Bizning o'quvchilarimiz Intel Xeon-da ikkilamchi protsessorli konfiguratsiyalar bilan allaqachon tanish, shuning uchun biz ushbu protsessorlardan foydalangan holda Hyper-Threading imkoniyatlarini misol sifatida ko'rib chiqamiz - nazariy va amaliy jihatdan. Qanday bo'lmasin, "oddiy" Xeon 4 protsessorli tizimlardagi Xeon MP-ga qaraganda oddiyroq va hazm bo'ladigan narsadir...

Hyper-Threading ning ishlash printsipi har qanday vaqtda dastur kodini bajarishda protsessor resurslarining faqat bir qismi ishlatilishiga asoslanadi. Ishlatilmagan resurslar ham ish bilan yuklanishi mumkin - masalan, boshqa dastur (yoki bir xil dasturning boshqa ipi) parallel bajarish uchun ishlatilishi mumkin. Bitta jismoniy Intel Xeon protsessorida ikkita mantiqiy protsessor (LP - Logical Processor) hosil bo'lib, ular protsessorning hisoblash resurslarini taqsimlaydi. Operatsion tizim va ilovalar aynan ikkita protsessorni "ko'radi" va ular o'rtasida ishni to'liq huquqli ikki protsessorli tizimda bo'lgani kabi taqsimlashi mumkin.

Hyper-Threading-ni amalga oshirishning maqsadlaridan biri, faqat bitta faol oqim mavjud bo'lganda, uni oddiy protsessordagi kabi tezlikda ishlashga imkon berishdir. Buning uchun protsessor ikkita asosiy ish rejimiga ega: bir vazifali (ST) va ko'p vazifali (MT). ST rejimida faqat bitta mantiqiy protsessor faol bo'lib, mavjud resurslardan (ST0 va ST1 rejimlari) bo'linmasdan foydalanadi; boshqa LP HALT buyrug'i bilan to'xtatiladi. Ikkinchi dastur chizig'i paydo bo'lganda, harakatsiz mantiqiy protsessor faollashadi (uzilish orqali) va jismoniy protsessor MT rejimiga o'tkaziladi. HALT buyrug'i bilan foydalanilmagan LP'larni to'xtatish operatsion tizimga yuklangan, u oxir-oqibatda Hyper-Threadingsiz holatda bo'lgani kabi bitta ipning tez bajarilishi uchun javobgardir.

Ikkita LPning har biri uchun Arxitektura holati (AS) deb ataladigan narsa saqlanadi, u har xil turdagi registrlarning holatini o'z ichiga oladi - umumiy maqsadli, nazorat, APIC va xizmat. Har bir LP o'zining APIC (uzilish tekshiruvi) va registrlar to'plamiga ega bo'lib, ularning to'g'ri ishlashi uchun sakkizta umumiy maqsadli IA-32 registrlari va 128 registrlar o'rtasidagi yozishmalarni kuzatuvchi Register taxalluslar jadvali (RAT) tushunchasi kiritilgan. jismoniy protsessor registrlari (har bir LP uchun bitta RAT).

Ikki ipni ishga tushirganda, keyingi ko'rsatmalar ko'rsatkichlarining ikkita mos keladigan to'plami qo'llab-quvvatlanadi. Ko'rsatmalarning aksariyati Trace Cache (TC) dan olingan bo'lib, u erda ular dekodlangan shaklda saqlanadi va ikkita faol LP har bir soatda navbat bilan TCga kirishadi. Shu bilan birga, faqat bitta LP faol bo'lganda, u soatni aylantirmasdan TCga eksklyuziv kirish huquqiga ega bo'ladi. Microcode ROM-ga kirish xuddi shunday tarzda sodir bo'ladi. Buyruqlar keshida kerakli ko'rsatmalar yo'q bo'lganda foydalaniladigan ITLB (Instruction Translation Look-side Buffer) bloklari takrorlanadi va har biri o'z ish zarrachasi uchun buyruqlar beradi. IA-32 Instruction Decode bloki umumiy bo'lib, har ikkala oqim uchun ko'rsatmalarni dekodlash zarur bo'lsa, u ularga birma-bir xizmat qiladi (yana har bir soat). Uop Queue va Allocator bloklari ikkiga bo'lingan va har bir LP uchun elementlarning yarmini ajratadi. 5-raqamli rejalashtiruvchilar, LP0/LP1 ga tegishli bo'lishiga qaramay, dekodlangan buyruqlar (Uops) navbatlarini va kerakli Ijro birliklari tomonidan bajarilishi kerak bo'lgan to'g'ridan-to'g'ri buyruqlar - birinchisini bajarishga tayyorligi va ikkinchisining mavjudligiga qarab. Barcha darajadagi keshlar (Xeon uchun L1/L2, shuningdek Xeon MP uchun L3) ikkita LP o'rtasida to'liq taqsimlanadi, ammo ma'lumotlar yaxlitligini ta'minlash uchun DTLB (Data Translation Look-side Buffer) dagi yozuvlar diskriptorlar bilan jihozlangan. mantiqiy protsessor identifikatorlari shakli.

Shunday qilib, ikkala mantiqiy protsessorning ko'rsatmalari bir vaqtning o'zida to'rtta sinfga bo'lingan bitta jismoniy protsessorning resurslarida bajarilishi mumkin:

  • takrorlangan;
  • To'liq ulashilgan;
  • element deskriptorlari bilan (Entry Tagged);
  • ST0/ST1 yoki MT ish rejimiga qarab dinamik ravishda bo'lingan (bo'lingan).

Biroq, ko'p protsessorli tizimlarda tezlashtirishni oladigan ko'pgina ilovalar Hyper-Threading yoqilgan protsessorda ham hech qanday o'zgartirishlarsiz tezlashtirilishi mumkin. Ammo muammolar ham mavjud: masalan, agar bitta jarayon kutish tsiklida bo'lsa, u ikkinchi LP ishiga xalaqit berib, jismoniy protsessorning barcha resurslarini egallashi mumkin. Shunday qilib, Hyper-Threading-dan foydalanganda ishlash ba'zan pasayishi mumkin (20% gacha). Bunga yo'l qo'ymaslik uchun Intel bo'sh kutish davrlari o'rniga PAUSE (Pentium 4 dan boshlab IA-32 da kiritilgan) yo'riqnomasidan foydalanishni tavsiya qiladi. Kompilyatsiya jarayonida avtomatik va yarim avtomatik kod optimallashtirish bo'yicha ham jiddiy ishlar olib borilmoqda - masalan, Intel OpenMP C++/Fortran Compilers () kompilyatorlari bu borada sezilarli yutuqlarga erishdi.

Intel kompaniyasining fikriga ko'ra Hyper-Threading-ni birinchi marta amalga oshirishning yana bir maqsadi tranzistorlar sonining ko'payishini, chip maydonini va quvvat sarfini minimallashtirish va shu bilan birga ishlashning sezilarli o'sishiga erishish edi. Ushbu majburiyatning birinchi qismi allaqachon bajarilgan: Xeon/Xeon MP ga Hyper-Threading qo'llab-quvvatlash qo'shilishi o'lim maydonini va quvvat sarfini 5% dan kamroqqa oshirdi. Biz hali ham ikkinchi qism (spektakl) bilan nima sodir bo'lganini tekshirishimiz kerak.

Amaliy qism

Aniq sabablarga ko'ra biz Hyper-Threading yoqilgan Xeon MP da 4 protsessorli server tizimlarini sinab ko'rmadik. Birinchidan, bu juda ko'p mehnat talab qiladi. Ikkinchidan, agar biz bunday jasoratga qaror qilsak ham, bu qimmat uskunani rasmiy e'lon qilinganidan keyin bir oy o'tmasdan hozir olish mutlaqo mumkin bo'lmaydi. Shu sababli, ushbu protsessorlarning birinchi sinovi o'tkazilgan ikkita Intel Xeon 2,2 GHz bilan bir xil tizim bilan cheklanishga qaror qilindi (maqolaning boshidagi havolaga qarang). Tizim Supermicro P4DC6+ anakartiga (Intel i860 chipset) asoslangan boʻlib, 512 MB RDRAM xotirasi, GeForce3 chipidagi video karta (64 MB DDR, Detonator 21.85 drayverlari), Western Digital WD300BB qattiq diski va 6X DVD-ROM; OT sifatida Windows 2000 Professional SP2 ishlatilgan.

Birinchidan, bir nechta umumiy taassurotlar. Prestonia yadrosi bilan bitta Xeon o'rnatilganda, tizim ishga tushirilganda BIOS ikkita protsessor mavjudligi haqida xabarni ko'rsatadi; agar ikkita protsessor o'rnatilgan bo'lsa, foydalanuvchi to'rtta protsessor haqida xabarni ko'radi. Operatsion tizim odatda "ikkala protsessorni" taniydi, lekin ikkita shart bajarilgan taqdirdagina.

Birinchidan, CMOS Setup-da Supermicro P4DCxx platalarining so'nggi BIOS versiyalarida endi Hyper-Threading-ni yoqish opsiyasi mavjud, ularsiz OT faqat jismoniy protsessor(lar)ni taniydi. Ikkinchidan, ACPI imkoniyatlari operatsion tizimni qo'shimcha mantiqiy protsessorlar mavjudligi haqida xabardor qilish uchun ishlatiladi. Shuning uchun, Hyper-Threading-ni yoqish uchun CMOS Setup-da ACPI opsiyasi yoqilgan bo'lishi kerak va ACPI-ni qo'llab-quvvatlaydigan HAL (hardware Abstraction Layer) OTning o'zi uchun ham o'rnatilishi kerak. Yaxshiyamki, Windows 2000 da HALni standart kompyuterdan (yoki MPS Uni-/Multiprocessor PC) ACPI Uni-/Multiprocessor PC ga o'zgartirish oson - qurilma menejeridagi "kompyuter drayverini" almashtirish. Shu bilan birga, Windows XP uchun ACPI HAL ga o'tishning yagona qonuniy yo'li tizimni mavjud o'rnatish orqali qayta o'rnatishdir.

Ammo hozirda barcha tayyorgarlik ko'rildi va bizning Windows 2000 Pro allaqachon ikki protsessorli tizimda ishlayotganiga qat'iy ishonadi (garchi aslida faqat bitta protsessor o'rnatilgan bo'lsa ham). Endi, an'anaviy ravishda, sinov maqsadlari to'g'risida qaror qabul qilish vaqti keldi. Shunday qilib, biz xohlaymiz:

  • Hyper-Threadingning turli sinflardagi ilovalarning ishlashiga ta'sirini baholang.
  • Ushbu effektni ikkinchi protsessorni o'rnatish effekti bilan solishtiring.
  • Ikkinchi LP ishlamay qolganda faol mantiqiy protsessorga qanday "adolatli" resurslar ajratilganligini tekshiring.

Ishlashni baholash uchun biz o'quvchilarga allaqachon tanish bo'lgan, ish stantsiyalari tizimlarini sinovdan o'tkazishda ishlatiladigan bir qator ilovalarni oldik. Keling, oxiridan boshlaylik va mantiqiy protsessorlarning "tengligini" tekshiramiz. Bu juda oddiy: birinchi navbatda Hyper-Threading o'chirilgan bitta protsessorda testlarni o'tkazamiz, so'ngra Hyper-Threading yoqilgan holda va ikkita mantiqiy protsessordan faqat bittasi (Vazifa menejeri yordamida) yordamida jarayonni takrorlaymiz. Bu holatda bizni faqat nisbiy qiymatlar qiziqtirganligi sababli, barcha testlar natijalari "kattaroq bo'lsa yaxshiroq" ko'rinishiga keltiriladi va normallashtiriladi (Hyper-Threadingsiz bitta protsessorli tizimning ko'rsatkichlari bitta sifatida olinadi).

Ko'rib turganingizdek, Intelning va'dalari bu erda amalga oshadi: faqat bitta faol ip bilan ikkita LPning har birining ishlashi Hyper-Threadingsiz jismoniy protsessorning ishlashiga to'liq tengdir. Faol bo'lmagan LP (va LP0 va LP1 ham) haqiqatan ham to'xtatiladi va olingan natijalardan xulosa chiqarish mumkin bo'lgan umumiy resurslar faol LP ga foydalanish uchun to'liq o'tkaziladi.

Shuning uchun biz birinchi xulosa chiqaramiz: ikkita mantiqiy protsessor aslida tengdir va Hyper-Threading-ni yoqish bitta ipning ishiga "to'sqinlik qilmaydi" (bu o'z-o'zidan yomon emas). Keling, ushbu inklyuziya "yordam beradimi" yoki yo'qligini bilib olaylik, agar shunday bo'lsa, qaerda va qanday?

Renderlash. 3D Studio MAX 4.26, Lightwave 7b va A|W Maya 4.0.1 3D modellashtirish paketlaridagi to‘rtta test natijalari o‘xshashligi tufayli bitta diagrammada birlashtirilgan.

Barcha to'rt holatda (Lightwave uchun - ikki xil sahnada), Hyper-Threading o'chirilgan bitta protsessor mavjudligida protsessor yuki deyarli har doim 100% darajasida saqlanadi. Shunga qaramay, Hyper-Threading yoqilganda, sahna hisoblari tezlashadi (natijada bizda protsessor yuki 100% dan ortiq ekanligi haqida hazil ham bor edi). Uchta sinovda Hyper-Threading-dan 14-18% unumdorlikning oshishi ko'rinadi - bir tomondan, ikkinchi protsessorga nisbatan unchalik ko'p emas, lekin boshqa tomondan, bu effektning "erkin" xususiyatini hisobga olgan holda, juda yaxshi. . Lightwave bilan ikkita sinovdan birida ishlashning o'sishi deyarli nolga teng (ko'rinishidan, bu g'alati narsalarga to'la bo'lgan ushbu ilovaning o'ziga xos xususiyatlari bilan bog'liq). Ammo hech bir joyda salbiy natija yo'q, qolgan uchta holatda sezilarli o'sish quvonarli. Va shunga qaramay, parallel renderlash jarayonlari shunga o'xshash ishlarni bajaradi va, ehtimol, bir vaqtning o'zida jismoniy protsessor resurslaridan eng yaxshi tarzda foydalana olmaydi.

Photoshop va MP3 kodlash. GOGO-no-coda 2.39c kodek SMP-ni qo'llab-quvvatlaydigan kam sonli kodeklardan biri bo'lib, ikki protsessor tufayli unumdorligi sezilarli 34% ga oshgan. Shu bilan birga, bu holda Hyper-Threading ta'siri nolga teng (biz 3% farqni muhim deb hisoblamaymiz). Ammo Photoshop 6.0.1 (katta buyruqlar va filtrlar to'plamidan iborat skript) sinovida Hyper-Threading yoqilganda sekinlashuv ko'rinadi, garchi ikkinchi jismoniy protsessor bu holatda 12% unumdorlikni oshiradi. Bu, aslida, Hyper-Threading ishlashning pasayishiga olib keladigan birinchi holat ...

Professional OpenGL. SPEC ViewPerf va boshqa ko'plab OpenGL ilovalari SMP tizimlarida tez-tez sekinlashishi uzoq vaqtdan beri ma'lum.

OpenGL va dual protsessorlar: nima uchun ular do'st emas

Bizning maqolalarimizda biz ko'p marta o'quvchilarning e'tiborini ikki protsessorli platformalar professional OpenGL sinovlarini o'tkazishda kamdan-kam hollarda bitta protsessorli platformalarga nisbatan sezilarli ustunlikka ega ekanligiga qaratdik. Bundan tashqari, ikkinchi protsessorni o'rnatishda ko'pincha holatlar mavjud, aksincha, dinamik uch o'lchamli sahnalarni ko'rsatishda tizimning ish faoliyatini yomonlashtiradi.

Tabiiyki, bu g'alatilikni faqat biz sezmaganmiz. Ba'zi testerlar bu haqiqatdan jimgina qochishdi - masalan, SPEC ViewPerf testlarining taqqoslash natijalarini faqat ikki protsessorli konfiguratsiyalar uchun taqdim etish, shu bilan "ikki protsessorli tizim nima uchun sekinroq?" Boshqalar kesh uyg'unligi, uni saqlab qolish zarurati, bundan kelib chiqadigan qo'shimcha xarajatlar va boshqalar haqida har qanday fantastik taxminlarni ilgari surdilar. Va negadir, masalan, protsessorlar Windows-ning OpenGL renderida kogerentlikni kuzatishda negadir sabrsizlik qilgani hech kimni hayron qoldirmadi ("hisoblash" mohiyatiga ko'ra u boshqa har qanday hisoblash vazifasidan unchalik farq qilmaydi).

Aslida, tushuntirish, bizning fikrimizcha, ancha sodda. Ma'lumki, ilova ikkita protsessorda bitta protsessorga qaraganda tezroq ishlashi mumkin, agar:

  • bir vaqtning o'zida ikkitadan ortiq yoki undan ortiq bajariladigan dastur iplari mavjud;
  • bu iplar bir-birining bajarilishiga xalaqit bermaydi - masalan, ular tashqi disk yoki tarmoq interfeysi kabi umumiy resurs uchun raqobatlashmaydi.

Endi keling, OpenGL renderlash ikkita ip tomonidan bajarilganda qanday ko'rinishini soddalashtirilgan tarzda ko'rib chiqaylik. Agar ikkita protsessorni "ko'rgan" dastur ikkita OpenGL renderlash ipini yaratsa, ularning har biri uchun OpenGL qoidalariga muvofiq o'z gl konteksti yaratiladi. Shunga ko'ra, har bir ip o'zining gl kontekstiga aylanadi. Ammo muammo shundaki, tasvir ko'rsatiladigan oyna uchun istalgan vaqtda faqat bitta gl konteksti joriy bo'lishi mumkin. Shunga ko'ra, bu holda iplar shunchaki "birma-bir" yaratilgan tasvirni oynada ko'rsatadi va navbat bilan ularning kontekstini joriy qiladi. Aytishga hojat yo'q, bunday "kontekstni aralashtirish" qo'shimcha xarajatlar nuqtai nazaridan juda qimmat bo'lishi mumkinmi?

Bundan tashqari, misol sifatida biz OpenGL sahnalarini ko'rsatadigan bir nechta ilovalarda ikkita protsessordan foydalanish grafiklarini ko'rsatamiz. Barcha o'lchovlar quyidagi konfiguratsiyaga ega platformada amalga oshirildi:

  • bir yoki ikkita Intel Xeon 2,2 GHz (Hyper-Threading o'chirilgan);
  • 512 MB RDRAM xotirasi;
  • Supermicro P4DC6+ anakarti;
  • ASUS V8200 Deluxe video kartasi (NVidia GeForce3, 64 MB DDR SDRAM, Detonator 21.85 drayverlari);
  • Windows 2000 Professional SP2;
  • video rejimi 1280x1024x32 bpp, 85 Hz, Vsync o'chirilgan.

Moviy va qizil ranglar mos ravishda CPU 0 va CPU 1 ning yuklanish grafiklarini ko'rsatadi. O'rtadagi chiziq oxirgi CPU foydalanish grafigi. Uchta grafik 3D Studio MAX 4.26 dan ikkita sahnaga va SPEC ViewPerf testining bir qismiga (AWadvs-04) mos keladi.


Protsessordan foydalanish: animatsiya 3D Studio MAX 4.26 - Anibal (manipulyatorlar bilan).


CPU foydalanish: Animation 3D Studio MAX 4.26 - Rabbit.max


CPU foydalanish: SPEC ViewPerf 6.1.2 - AWadvs-04

Xuddi shu rasm OpenGL-dan foydalanadigan ko'plab boshqa ilovalarda takrorlanadi. Ikki protsessor umuman bezovta qilmaydi va umumiy protsessordan foydalanish 50-60% darajasida. Shu bilan birga, bu barcha holatlarda bitta protsessorli tizim uchun protsessordan foydalanish ishonchli tarzda 100% da qoladi.

Shu sababli, ko'pgina OpenGL ilovalari dual tizimlarda unchalik tezlashmasligi ajablanarli emas. Xo'sh, ularning ba'zan hatto sekinlashishi, bizningcha, butunlay mantiqiy tushuntirishga ega.

Aytishimiz mumkinki, ikkita mantiqiy protsessor bilan ishlashning pasayishi yanada sezilarli bo'ladi, bu tushunarli: ikkita mantiqiy protsessor bir-biriga ikkita jismoniy protsessor kabi aralashadi. Ammo ularning umumiy ishlashi, tabiiyki, pastroq bo'lib chiqadi, shuning uchun Hyper-Threading yoqilganda, u ikkita jismoniy protsessor ishlagandan ko'ra ko'proq kamayadi. Natijani bashorat qilish mumkin va xulosa oddiy: "haqiqiy" SMP kabi Hyper-Threading OpenGL uchun kontrendikedir.

SAPR ilovalari. Oldingi xulosa ikkita SAPR sinovlari natijalari bilan tasdiqlangan - SolidEdge V10 uchun SPECapc va SolidWorks uchun SPECapc. Ushbu Hyper-Threading testlarining grafik ishlashi o'xshashdir (garchi SolidEdge V10 uchun SMP tizimi biroz yuqoriroq ballga ega). Ammo protsessorni yuklaydigan CPU_Score testlari natijalari sizni o'ylantiradi: SMPdan 5-10% o'sish va Hyper-Threadingdan 14-19% sekinlashuv.

Biroq, kun oxirida Intel, Hyper-Threading ba'zi hollarda, masalan, bo'sh kutish davrlarini ishlatganda ishlashning pasayishiga olib kelishi mumkinligini halol tan oladi. Biz faqat buning sababi deb taxmin qilishimiz mumkin (SolidEdge va SolidWorks kodlarini batafsil o'rganish ushbu maqola doirasidan tashqarida). Axir, hamma SAPR dasturlarini ishlab chiquvchilarning konservatizmini biladi, ular tasdiqlangan ishonchlilikni afzal ko'radilar va dasturlashning yangi tendentsiyalarini hisobga olgan holda kodni qayta yozishga shoshilmaydilar.

Xulosa yoki "Diqqat, to'g'ri savol"

Hyper-Threading ishlaydi, bunga hech qanday shubha yo'q. Albatta, texnologiya universal emas: Hyper-Threadingdan aziyat chekadigan ilovalar mavjud va agar bu texnologiya keng tarqalsa, ularni o'zgartirish maqsadga muvofiq bo'ladi. Ammo xuddi shu narsa MMX va SSE bilan sodir bo'lmagan va SSE2 bilan sodir bo'lishda davom etmaganmi?..

Biroq, bu texnologiyaning bizning voqeliklarimiz uchun qo'llanilishi masalasini ko'taradi. Biz Hyper-Threading bilan Xeon-da bitta protsessorli tizim variantidan darhol voz kechamiz (yoki ikkinchi protsessor sotib olinmaguncha unga vaqtinchalik tizim sifatida ruxsat beramiz): hatto unumdorlikning 30% ga oshishi ham narxni oqlamaydi. har qanday usulda - keyin oddiy Pentium 4 sotib olish yaxshidir. Qolgan protsessorlar soni ikki va undan yuqori.

Keling, ikkita protsessorli Xeon tizimini (masalan, Windows 2000/XP Professional bilan) sotib olayotganimizni tasavvur qilaylik. Ikkita protsessor o'rnatildi, Hyper-Threading yoqildi, BIOS to'rtta mantiqiy protsessorni topdi, endi voy, biz uchish arafasidamiz... To'xtating. Ammo bizning operatsion tizimimiz nechta protsessorni ko'radi? To'g'ri, ikkita. Faqat ikkitasi, chunki u ko'proq narsa uchun mo'ljallanmagan. Bu ikkita jismoniy protsessor bo'ladi, ya'ni hamma narsa Hyper-Threading o'chirilgandagidek ishlaydi - sekinroq emas (ikkita "qo'shimcha" mantiqiy protsessor shunchaki to'xtaydi), lekin tezroq ham emas (qo'shimcha testlar bilan sinovdan o'tgan, natijalar biz emas. ularni taqdim eting, chunki ular butunlay ravshan). Hm, unchalik yoqimli emas ...

Nima qoldi? Xo'sh, biz ish stantsiyamizga Advanced Server yoki .NET Serverni o'rnatishimiz kerak emasmi? Yo'q, tizim to'rtta mantiqiy protsessorni o'rnatadi, taniydi va ishlaydi. Lekin server OS ish stantsiyasida biroz g'alati ko'rinadi, yumshoq qilib aytganda (moliyaviy jihatlarni aytmasa ham). Yagona mantiqiy holat bu bizning ikkilamchi protsessorli Xeon tizimimiz server vazifasini bajarishi (hech bo'lmaganda ba'zi assemblerlar hech ikkilanmasdan Xeon protsessorlari ish stantsiyalarida serverlar ishlab chiqarishni boshlaganlar). Ammo mos keladigan operatsion tizimga ega ikkita ish stantsiyalari uchun Hyper-Threadingning qo'llanilishi so'roq ostida qolmoqda. Intel hozirda mantiqiy emas, balki jismoniy protsessorlar soniga asoslangan holda operatsion tizimni litsenziyalashni faol ravishda himoya qilmoqda. Muhokamalar hali ham davom etmoqda va umuman olganda, ko'p narsa biz to'rtta protsessorni qo'llab-quvvatlaydigan ish stantsiyasining operatsion tizimini ko'rishimizga bog'liq.

Xo'sh, serverlar bilan hamma narsa juda oddiy bo'lib chiqadi. Masalan, Hyper-Threading yoqilgan ikki protsessorli Xeon tizimiga o'rnatilgan Windows 2000 Advanced Server to'rtta mantiqiy protsessorni "ko'radi" va unda muammosiz ishlaydi. Hyper-Threading server tizimlarida nima qilishi mumkinligini baholash uchun biz ikki protsessorli Xeon MP tizimlari va bir nechta Microsoft server ilovalari uchun Intel Microprocessor Software Labs natijalarini taqdim etamiz.

Ikki protsessorli server uchun "bepul" ishlashning 20-30% ga oshishi jozibador emas (ayniqsa, "haqiqiy" 4 protsessorli tizimni sotib olish bilan solishtirganda).

Shunday qilib, hozirgi vaqtda Hyper-Threadingning amaliy qo'llanilishi faqat serverlarda mumkinligi ma'lum bo'ldi. Ish stantsiyalari bilan bog'liq muammo operatsion tizimni litsenziyalash bo'yicha qarorga bog'liq. Hyper-Threading-ning boshqa ilovasi juda mumkin bo'lsa-da - agar ish stoli protsessorlari ham ushbu texnologiyani qo'llab-quvvatlasa. Misol uchun (tasavvur qilaylik), Hyper-Threading-ni qo'llab-quvvatlaydigan Pentium 4 tizimida Windows 2000/XP Professional SMP-ni qo'llab-quvvatlaydigan tizim o'rnatilganda nima yomon? Hyper-Threading-ning keng qo'llanilishi - serverlardan ish stoli va mobil tizimlargacha.

2015 yil 20 yanvar, soat 19:43

Yana bir bor Hyper-Threading haqida

  • IT tizimlarini sinovdan o'tkazish,
  • Dasturlash

Hyper-threading texnologiyasi kontekstida xotira samaradorligini baholash zarur bo'lgan vaqt bor edi. Biz uning ta'siri har doim ham ijobiy emas degan xulosaga keldik. Bo'sh vaqt kvanti paydo bo'lganda, tadqiqotni davom ettirish va davom etayotgan jarayonlarni o'z dizaynimizdagi dasturiy ta'minotdan foydalangan holda mashina soatlari va bitlarining aniqligi bilan ko'rib chiqish istagi paydo bo'ldi.

O'rganilayotgan platforma

Tajribalar obyekti Intel Core i7-4700HQ protsessorli ASUS N750JK noutbukidir. Soat chastotasi 2,4 gigagerts, Intel Turbo Boost rejimida 3,4 GGts gacha oshirildi. Ikki kanalli rejimda ishlaydigan 16 gigabayt DDR3-1600 RAM (PC3-12800) o'rnatilgan. Operatsion tizim - Microsoft Windows 8.1 64 bit.

Fig.1 O'rganilayotgan platformaning konfiguratsiyasi.

O'rganilayotgan platformaning protsessorida 4 ta yadro mavjud bo'lib, ular Hyper-Threading texnologiyasi yoqilganda 8 ta oqim yoki mantiqiy protsessorlar uchun apparat ta'minotini ta'minlaydi. Platforma proshivkasi ushbu ma'lumotni MADT (Multiple APIC Description Table) ACPI jadvali orqali operatsion tizimga uzatadi. Platformada faqat bitta RAM kontrolleri mavjud bo'lganligi sababli, protsessor yadrolarining xotira kontrollerlariga yaqinligini e'lon qiladigan SRAT (Tizim resurslariga yaqinlik jadvali) jadvali mavjud emas. Shubhasiz, o'rganilayotgan noutbuk NUMA platformasi emas, balki operatsion tizim uni birlashtirish maqsadida NUMA tugunlari = 1 qatorida ko'rsatilganidek, uni bir domenga ega NUMA tizimi deb hisoblaydi. Bizning ishimiz uchun asosiy fakt. tajribalar shuni ko'rsatadiki, birinchi darajali ma'lumotlar keshi to'rt yadroning har biri uchun 32 kilobayt hajmiga ega. Bir yadroli ikkita mantiqiy protsessor L1 va L2 keshlarini baham ko'radi.

O'rganilayotgan operatsiya

Biz ma'lumotlar blokining o'qish tezligining uning hajmiga bog'liqligini o'rganamiz. Buning uchun biz eng samarali usulni tanlaymiz, ya'ni AVX ko'rsatmasi VMOVAPD yordamida 256 bitli operandlarni o'qish. Grafiklarda X o'qi blok hajmini, Y o'qi esa o'qish tezligini ko'rsatadi. L1 kesh hajmiga mos keladigan X nuqtasi atrofida biz burilish nuqtasini ko'rishni kutamiz, chunki qayta ishlangan blok kesh chegaralarini tark etgandan so'ng unumdorlik pasayishi kerak. Bizning testimizda, ko'p tarmoqli ishlov berishda, 16 ta boshlangan ipning har biri alohida manzil oralig'i bilan ishlaydi. Ilova ichidagi Hyper-Threading texnologiyasini boshqarish uchun har bir ip har bir mantiqiy protsessorga bitta bit mos keladigan niqobni o'rnatuvchi SetThreadAffinityMask API funksiyasidan foydalanadi. Bitta bit qiymati ko'rsatilgan protsessorni ma'lum bir ip tomonidan ishlatishga imkon beradi, nol qiymat uni taqiqlaydi. O'rganilayotgan platformaning 8 ta mantiqiy protsessorlari uchun 11111111b maskasi barcha protsessorlardan foydalanishga imkon beradi (Hyper-Threading yoqilgan), maska ​​01010101b har bir yadroda bitta mantiqiy protsessordan foydalanishga imkon beradi (Hyper-Threading o'chirilgan).

Grafiklarda quyidagi qisqartmalar qo'llaniladi:

MBPS (sekundiga megabayt)sekundiga megabaytlarda o'qish tezligini bloklash;

CPI (ko'rsatma bo'yicha soatlar)har bir ko'rsatma uchun soat sikllari soni;

TSC (vaqt markasi hisoblagichi)CPU soat hisoblagichi.

Eslatma: Turbo Boost rejimida ishlayotganda TSC registrining soat tezligi protsessorning soat tezligiga mos kelmasligi mumkin. Natijalarni sharhlashda buni hisobga olish kerak.

Grafiklarning o'ng tomonida dasturning har bir ipida bajarilgan maqsadli operatsiyaning tsikli tanasini tashkil etuvchi ko'rsatmalarning o'n oltilik soni yoki ushbu kodning birinchi 128 bayti tasvirlangan.

Tajriba № 1. Bitta ip



2-rasm Yagona ipni o'qish

Maksimal tezlik sekundiga 213563 megabayt. Burilish nuqtasi taxminan 32 kilobayt blok o'lchamida sodir bo'ladi.

Tajriba № 2. 4 ta protsessorda 16 ta ip, Hyper-Threading o'chirilgan



3-rasm O'n olti ipda o'qish. Amaldagi mantiqiy protsessorlar soni to'rtta

Hyper-Threading o'chirilgan. Maksimal tezlik sekundiga 797598 megabayt. Burilish nuqtasi taxminan 32 kilobayt blok o'lchamida sodir bo'ladi. Kutilganidek, bitta ip bilan o'qish bilan solishtirganda, ishlaydigan yadrolar soniga qarab tezlik taxminan 4 baravar oshdi.

Tajriba № 3. 8 ta protsessorda 16 ta ip, Hyper-Threading yoqilgan



4-rasm O'n olti ipda o'qish. Amaldagi mantiqiy protsessorlar soni sakkizta

Hyper-Threading yoqilgan. Maksimal tezlik sekundiga 800 722 megabaytni tashkil qiladi, Hyper-Threading-ni yoqish natijasida u deyarli oshmadi. Katta minus shundaki, burilish nuqtasi taxminan 16 kilobayt blok hajmida sodir bo'ladi. Hyper-Threading-ni yoqish maksimal tezlikni biroz oshirdi, ammo tezlikning pasayishi endi blok hajmining yarmida - taxminan 16 kilobaytda sodir bo'ladi, shuning uchun o'rtacha tezlik sezilarli darajada kamaydi. Buning ajablanarli joyi yo'q, har bir yadro o'zining L1 keshiga ega, ayni paytda bir yadroning mantiqiy protsessorlari uni baham ko'radi.

xulosalar

Operatsiya ko'p yadroli protsessorda o'lchovlarni yaxshi o'rgandi. Sabablari: Har bir yadro o'zining L1 va L2 keshini o'z ichiga oladi, maqsadli blok hajmi kesh hajmi bilan taqqoslanadi va har bir ip o'z manzil diapazoni bilan ishlaydi. Akademik maqsadlarda biz ushbu shartlarni sintetik testda yaratdik va real ilovalar odatda ideal optimallashtirishdan uzoq ekanligini tan oldik. Ammo Hyper-Threading-ni yoqish, hatto bunday sharoitlarda ham salbiy ta'sir ko'rsatdi; tepalik tezligining biroz oshishi bilan o'lchamlari 16 dan 32 kilobaytgacha bo'lgan bloklarni qayta ishlash tezligi sezilarli darajada yo'qoladi.