Mavzu: Multidasturlash va multiprotsessorlash

O’zbekiston Respublikasi Axborot Texnologiyalari va
Kommunikatsiyalarini Rivojlantirish Vazirligi
Muhammad Al-Xorazmiy nomidagi
Toshkent Axborot Texnologiyalari Universiteti.
MUSTAQIL ISH
Mavzu:
Multidasturlash va multiprotsessorlash
DIF 314-19 guruh SRM016
Bajardi:
Abdusaxatov B
Tekshirdi: Yo’ldoshev Y
Toshkent 2022
Mavzu:
Multi dasturlash va multiprotsessorlash
Reja:
1.
Ko'p yadroli protsessor
2.
Dasturiy ta'minotni parallellashtirish
3.
Kompyuter arxitekturasida multithreading
4.
Xulosa
5.
Foydalanilgan adabiyotlar
Multidasturlash va multiprotsessorlash
Ko'p yadroli protsessor - bu har biri dastur ko'rsatmalarini o'qigan va bajaradigan
yadro deb nomlangan, ikkita yoki undan ortiq alohida ishlov berish birligi bo'lgan
bitta integral mikrosxemadagi kompyuter protsessori. Ko'rsatmalar oddiy protsessor
ko'rsatmalari (masalan, ma'lumotlarni qo'shish, ko'chirish va filiallarni qo'shish), lekin
bitta protsessor bir vaqtning o'zida alohida yadrolarda ko'rsatmalarni bajarishi
mumkin, bu esa ko'p qirrali yoki boshqa parallel hisoblash texnikasini qo'llab-
quvvatlaydigan dasturlarning umumiy tezligini oshiradi. Ishlab chiqaruvchilar odatda
yadrolarni bitta integral mikrosxemaga (chip ko'p protsessori yoki CMP deb
nomlanuvchi) yoki bitta chip paketidagi bir nechta matritsaga birlashtiradilar. Hozirda
deyarli barcha shaxsiy kompyuterlarda ishlatiladigan mikroprotsessorlar ko'p yadroli.
CPU-mahalliy daraja-1 keshlari va umumiy, ikkinchi darajadagi 2-kesh bilan
umumiy ikki yadroli protsessor diagrammasi.
Ko'p yadroli protsessor bitta jismoniy paketda ko'p ishlov berishni amalga oshiradi.
Dizaynerlar ko'p yadroli qurilmadagi yadrolarni mahkam yoki yumshoq tarzda
birlashtirishi mumkin. Masalan, yadrolar keshlarni bo'lishishi mumkin yoki
bo'lmasligi mumkin va ular xabarlarni uzatish yoki umumiy xotirada yadrolararo
aloqa usullarini qo'llashlari mumkin. Yadrolarni o'zaro bog'lash uchun ishlatiladigan
umumiy tarmoq topologiyalariga avtobus, halqa, ikki o'lchovli mash va to'sin kiradi.
Bir hil ko'p yadroli tizimlarga faqat bir xil yadrolar kiradi; heterojen ko'p yadroli
tizimlarda bir xil bo'lmagan yadrolar mavjud (masalan, big.LITTLE bir xil buyruqlar
to'plamiga ega bo'lgan heterojen yadrolarga ega, AMD tezlashtirilgan protsessor
birliklarida esa bir xil ko'rsatmalar to'plamiga ega bo'lmagan yadrolar mavjud). Xuddi
bitta protsessorli tizimlarda bo'lgani kabi, ko'p yadroli tizimlardagi yadrolar VLIW,
superscalar, vector yoki multithread kabi arxitekturalarni amalga oshirishi mumkin.
An
Intel
Core 2 Duo
E6750 dual-core processor
Ko'p yadroli protsessorlar ko'plab dastur sohalarida keng qo'llaniladi, jumladan
umumiy maqsadlar uchun mo'ljallangan, o'rnatilgan, tarmoq, raqamli signallarni qayta
ishlash (DSP) va grafikalar (GPU). Asosiy hisoblash hatto o'nlabga ko'payadi va 10
000 dan ortiq ixtisoslashgan chiplar uchun va superkompyuterlarda (ya'ni chiplar
klasterlari) hisoblash 10 milliondan oshishi mumkin.
An
AMD
Athlon X2 6400+
dual-core processor
Ko'p yadroli protsessordan foydalanish natijasida erishilgan ko'rsatkichlarning
yaxshilanishi foydalaniladigan dasturiy ta'minot algoritmlariga va ularni amalga
oshirishga bog'liq. Xususan, mumkin bo'lgan yutuqlar dasturiy ta'minotning bir nechta
yadrolarda bir vaqtning o'zida parallel ravishda ishlashi mumkin bo'lgan qismi bilan
cheklangan; bu ta'sir Amdahl qonuni bilan tavsiflanadi. Eng yaxshi holatda,
sharmandali parallel muammolar deb ataladigan narsa, yadro soniga yaqin tezlikni
oshiruvchi omillarni amalga oshirishi mumkin, yoki agar muammo har bir yadro
keshiga mos keladigan darajada bo'linib ketgan bo'lsa, juda sekinroq asosiy tizim
xotirasidan foydalanishni oldini olish . Dasturchilar barcha muammolarni qayta ko'rib
chiqishda taqiqlangan miqdordagi kuch sarflamasalar, aksariyat dasturlar shunchalik
tezlashtirilmaydi.
Dasturiy ta'minotni parallellashtirish tadqiqotning doimiy davom etadigan mavzusidir.
Ko'p protsessorli dasturlarning birlashtirilishi tarmoq arxitekturasini loyihalashda
moslashuvchanlikni ta'minlaydi. Parallel modellar ichida moslashuvchanlik ushbu
protokollardan foydalanadigan tizimlarning qo'shimcha xususiyati hisoblanadi.
Kompyuter arxitekturasida multithreading - bu markaziy protsessor (protsessor) (yoki
ko'p yadroli protsessordagi bitta yadro) ning bir vaqtning o'zida operatsion tizim
tomonidan qo'llab-quvvatlanadigan bir nechta ijro etilishini ta'minlash qobiliyati.
Ushbu yondashuv ko'p ishlov berishdan farq qiladi. Ko'p ishlangan dasturda iplar bitta
yoki bir nechta yadrolarning resurslarini baham ko'radi, ular tarkibiga hisoblash
birliklari, protsessor keshlari va tarjima ko'rinishidagi bufer (TLB) kiradi.
Ko'p ishlov berish tizimlari bir yoki bir nechta yadrolarda bir nechta to'liq ishlov
berish birliklarini o'z ichiga oladigan bo'lsa, ko'p ishlov berish iplar darajasidagi
parallellik va buyruqlar darajasidagi parallellik yordamida bitta yadrodan
foydalanishni oshirishga qaratilgan. Ikkala texnika bir-birini to'ldirganligi sababli,
ular deyarli barcha zamonaviy tizimlar arxitekturalarida bir nechta ko'p qirrali
protsessorlar va ko'p yadroli yadroli protsessorlar bilan birlashtirilgan.
Dasturlashning eng past darajasida bajariladigan kod individual protsessor tomonidan
qo'llab-quvvatlanadigan mashina tili ko'rsatmalaridan iborat - odatda markaziy
protsessor (CPU) yoki grafik protsessor (GPU). Mashina tili kompyuterning holatini
oldingi holatidan o'zgartiradigan protsessor ko'rsatmalarini bildiruvchi ikkilik
qiymatlar guruhlaridan iborat. Masalan, ko'rsatma kompyuterdagi ma'lum bir saqlash
joyida saqlanadigan qiymatni o'zgartirishi mumkin - bu foydalanuvchi bevosita
kuzatib bo'lmaydigan ta'sir. Ko'rsatma, shuningdek, kirish yoki chiqarish bo'yicha
ko'plab operatsiyalardan birini bajarishi mumkin, masalan, ba'zi bir matnlarni
kompyuter ekranida aks ettirish; foydalanuvchiga ko'rinadigan holat o'zgarishini
keltirib chiqaradi. Protsessor ko'rsatmalarni berilgan tartibda bajaradi, agar boshqa
buyruqqa "o'tish" ko'rsatmasi berilmasa yoki operatsion tizim tomonidan to'xtatilsa.
2015 yilga kelib, aksariyat shaxsiy kompyuterlar, smartfonlar qurilmalari va
serverlarida bir nechta ijro etuvchi birliklari bo'lgan protsessorlar mavjud yoki bir
nechta protsessorlar birgalikda hisoblashni amalga oshirmoqdalar va hisoblashlar
o'tmishdagiga qaraganda ancha faollashib bormoqda.
Dasturiy ta'minotning aksariyati yuqori darajadagi dasturlash tillarida yozilgan. Ular
dasturchilar uchun osonroq va samaraliroq, chunki ular mashina tillariga qaraganda
tabiiy tillarga yaqinroq. Yuqori darajadagi tillar kompilyator yoki tarjimon yoki
ikkalasining kombinatsiyasi yordamida mashina tiliga tarjima qilinadi. Dasturiy
ta'minot, shuningdek, kompyuterning kompyuter tilidagi ko'rsatmalariga kuchli mos
keladigan va assambleyer yordamida mashina tiliga tarjima qilingan, past darajadagi
yig'ilish tilida yozilishi mumkin.
|