Bosh sahifa > Ko'rgazma > Kontent

Ko'p yadroli protsessor Dastur effektlari

Mar 14, 2019

Antivirus dasturining eskirgan versiyasi tekshiruv jarayonida yangi ish zarrachasini yaratishi mumkin, GUI bandasi esa foydalanuvchidan buyruqlarni kutadi (masalan, skanerni bekor qilish). Bunday hollarda, ko'p yadroli arxitektura dasturning o'zi uchun juda oz foyda keltiradi, chunki barcha og'ir o'chirishni va bir nechta yadrolarni teng ravishda muvozanatlashning imkoni yo'q. Chindan ham ko'p ishlaydigan kodlashni dasturlash ko'pincha ish zarralarini murakkab muvofiqlashtirishni talab qiladi va ishlovlar o'zaro bog'langanligi sababli, nozik va murakkab xatolarni osonlik bilan tanishtirib qo'yishi mumkin (ish zarrachalar xavfsizligini ko'ring). Natijada, bunday kod buzilganida bir nusxadagi kodga qaraganda disk raskadrovka qilish juda qiyin. Iste'molchilar darajasida ishlaydigan dasturlarni yozib olishda rag'batlantirilmaganligi sababli, kompyuter texnikasidan maksimal foydalanish uchun iste'molchilar darajasidagi talabning nisbatan kamligi. Bir nechta protsessorlarga ishlov berish uchun qo'shimcha jarima solinishi mumkin bo'lsa-da, faqat bitta protsessorli mashinalarning ustunligi sababli qo'shimcha ishlab chiqarishni oqlash qiyin kechdi. Bundan tashqari, video kodeklarda ishlatiladigan entropiya kodlash algoritmlarini dekodlash kabi ketma-ket topshiriqlarni parallellashtirish mumkin emas, chunki hosil qilingan har bir natija entropiya dekodlash algoritmining keyingi natijasini yaratishda yordam beradi.


Ko'p yadroli chip dizayniga e'tiborni kuchaytirib, protsessorning soat tezligining har qanday sezilarli darajada ortishi tufayli jiddiy issiqlik va quvvat iste'moli muammosidan kelib chiqadigan bo'lsak, ushbu yangi chiplardan foydalanish uchun dasturiy ta'minotni ko'p ishlating. kelgusida kompyuterning ishlashidagi yagona eng katta cheklov. Ishlab chiquvchilar dasturiy ta'minotni bir nechta yadrolar tomonidan taqdim etilgan resurslardan to'liq foydalana olmasliklari uchun yaratolmaydilar, natijada ular bajarib bo'lmaydigan ko'rsatkichga erishadilar.


Telekommunikatsiya bozori Datapath paketini qayta ishlashning yangi dizayni kerak bo'lgan dastlabki loyihalardan biri bo'lib, chunki bu datapat va boshqaruv tekisligi uchun juda ko'p yadroli protsessorlarni juda tez qabul qilish edi. Ushbu MPUlar an'anaviy Tarmoq protsessorlari o'rnini egallaydilar. Ushbu protseduralar microcode yoki picocode-ga asoslangan.


Parallel dasturlash texnikasi ko'p yadrolardan bevosita foydalanishi mumkin. Cilk Plus, OpenMP, OpenHMPP, FastFlow, Skandium, MPI va Erlang kabi mavjud bo'lgan ba'zi parallel dasturiy modellar ko'p yadroli platformalarda foydalanish mumkin. Intel TBB deb nomlangan C ++ parallelizmi uchun yangi abstraktsiyani taqdim etdi. Boshqa tadqiqotlarga Codeplay Sieve System, Cray Chapel, Sun Fortress va IBMning X10 kiradi.


Ko'p yadroli protsedura zamonaviy hisoblash dasturlarini ishlab chiqish qobiliyatiga ham ta'sir ko'rsatdi. Yangi tillarda dasturchilar o'zlarining zamonaviy tillari ko'p yadroli funksiyalarni qo'llab-quvvatlamaydi. Keyinchalik, C va Fortran kabi tillarda yozilgan kodlarga kirish uchun raqamli kutubxonalardan foydalanishni talab qiladi, bu matematik hisob-kitoblarni C # kabi yangi tillardan tezroq amalga oshiradi. Intelning MKL va AMD ning ACMLlari ushbu ona tillarda yozilgan va ko'p yadroli qayta ishlashdan foydalaniladi. Dastur ish yukini protsessorlardan farqlash muammoli bo'lishi mumkin, ayniqsa ular turli xil ishlash ko'rsatkichlariga ega. Muammoni hal etish uchun turli kontseptual modellar mavjud, masalan, muvofiqlashtirish tili va dasturni yaratish bloklari (dasturiy kutubxonalari yoki yuqori darajadagi vazifalar). Har bir blokning har bir protsessor turi uchun turli xil mahalliy dastur bo'lishi mumkin. Foydalanuvchilar oddiygina ushbu abstraktlarni dasturlashadi va aqlli derleyici kontekstga asoslangan eng yaxshi dasturni tanlaydi.


O'zaro muvozanatni boshqarish parallel dasturlarni ishlab chiqishda markaziy rol o'ynaydi. Parallel dasturlarni ishlab chiqishda asosiy qadamlar quyidagilardir:


Partitioning

Dizaynning bo'linish bosqichi parallel bajarilish imkoniyatlarini namoyish qilish uchun mo'ljallangan. Shuning uchun, muammoning nozik tanazzulga uchrashi deb ataladigan narsalarni olish uchun juda ko'p miqdordagi kichik vazifalarni belgilashga alohida e'tibor qaratilgan.

Aloqa

Bo'lim tomonidan yaratilgan vazifalar bir vaqtning o'zida bajarilishi kerak, lekin umuman olganda mustaqil ravishda amalga oshirilmaydi. Bir vazifada bajariladigan hisoblash, odatda, boshqa vazifa bilan bog'liq ma'lumotlarni talab qiladi. So'ngra, hisoblashni davom ettirishga imkon beradigan vazifalar o'rtasida ma'lumotlar uzatilishi kerak. Ushbu axborot oqimi dizaynning muloqot bosqichida ko'rsatiladi.

Aglomeratsiya

Uchinchi bosqichda esa rivojlanish mavhumlikdan betona o'tadi. Ishlab chiquvchilar parallel kompyuterning ba'zi bir sinfida samarali ishlashi mumkin bo'lgan algoritmni olish uchun ajratish va aloqa bosqichlarida qabul qilingan qarorlarni qayta ko'rib chiqadilar. Ayniqsa, ishlab chiquvchilar, har biri kattaroq hajmdagi topshiriqlarni qisqartirish uchun, ajratish bosqichida aniqlangan vazifalarni birlashtirish yoki aglomeraatsiya qilish foydali deb hisoblaydi. Shuningdek, ma'lumotlar va hisoblarni takrorlashning foydali ekanligini aniqlaydi.

Mapping

Parallel algoritmlarni loyihalashning to'rtinchi va oxirgi bosqichida, ishlab chiquvchilar har bir topshiriqni bajarish kerakligini aniqlaydilar. Ushbu xaritalash muammoni ishlovchilarda yoki avtomatik ishni rejalashtirishni ta'minlaydigan umumiy xotira kompyuterlarida paydo bo'lmaydi.

Boshqa tomondan, server tomonida ko'p yadroli protsessorlar idealdir, chunki ular ko'p foydalanuvchilarga saytga bir vaqtning o'zida ulanishga va mustaqil ishlarni bajarishga imkon beradi. Bu veb-serverlar va dastur serverlarida yanada yaxshi ishlashga ega bo'lish imkonini beradi.


Litsenziyalash

Ta'minlovchilar "har bir protsessorga" dasturiy ta'minotni litsenziyalashlari mumkin. Bu "noaniqlikka" sabab bo'lishi mumkin, chunki "protsessor" bitta yadro yoki yadro kombinatsiyasidan iborat bo'lishi mumkin.


Dastlab, ba'zi korporativ dasturiy ta'minotlari uchun, Microsoft o'zining soket litsenziyalash tizimidan foydalanishni davom ettirdi. Biroq, BizTalk Server 2013, SQL Server 2014 va Windows Server 2016 kabi ba'zi bir dasturlar uchun Microsoft korporatsiyaning har bir yadro litsenziyasiga o'tishga muvaffaq bo'ldi.

Oracle korporatsiyasi bir AMD X2 yoki Intel yadroli protsessorni bitta protsessor deb hisoblaydi, ammo boshqa turdagi boshqa metrikalarni, ayniqsa, ikki yadroli protsessorlar uchun foydalanadi.