Uploaded by Biloljon Zakirov

Mustaqil ish Mavzu Parallel hisoblash uchun mo ljallangan masal

advertisement
O’ZBEKISTON RESPUBLIKASI RAQAMLI TEXNOLOGIYALARI
VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALRI UNIVERSITETI
FARG’ONA FILIALI
Kompyuter injinering fakulteti
710-21 guruh talabasi Zakirov Biloljonning
“Kompyuter arxitekturasi” fanidan bajargan
MUSTAQIL ISHI
Topshirdi:
Zakirov B.
Qabul qildi:
Sobirov M.
Mavzu: "Parallel hisoblash uchun moʻljalangan masalalar"
Reja:
I.
II.
1.
2.
3.
III.
Kirish.Algoritmlar
Asosiy qism
Parallel algoritmlar va dasturlar
Parallel algortimlarni shakllantirish bosqichlari
Ko’p oqimli dasturlar
Yakuniy qism.
1. Xulosa.
2. Foydalanilgan adabiyotlar
Kirish.Algoritmlar
Qo‘yilgan biror masalani EHMda yechish uchun, avval uning matematik
modelini, keyin algoritmini va programmasini tuzish kerak bo‘ladi. Bu uchlikda
algoritm bloki muhim ahamiyatga ega. Endi algoritm tushunchasining ta’rifi va
xossalarini bayon qilamiz.
Algoritm bu oldimizga qo‘yilgan masalani yechish zarur bo‘lgan
amallar ketma-ketligidir.
Algoritm so‘zi va tushunchasi IX asrda yashab ijod etgan buyuk alloma
Muhammad al-Xorazmiy nomi bilan uzviy bog‘liq. Algoritm so‘zi AlXorazmiy nomini Yevropa olimlari tomonidan buzib talaffuz qilinishidan yuzaga
kelgan. Al-Xorazmiy birinchi bo‘lib o‘nlik sanoq sistemasining tamoyillarini va
undagi to‘rtta amallarni bajarish qoidalarini asoslab bergan.
Algoritmning asosiy xossalari 5 ta:
Diskretlilik (Cheklilik)
Tushunarlilik
Aniqlik
Ommaviylik
Natijaviylik
Algoritmning tasvirlash usullari 4 ta:
IV. Algoritmning so‘zlar orqali ifodalanishi
V. Algoritmning formulalar bilan berilish
VI. Algoritmlarning grafik shaklida tasvirlanishi
VII. Algoritmning jadval ko‘rinishda berilishi
Algoritmlarni shartli ravishda quyidagi turlarga ajratish mumkin:
4.
Chiziqli algoritmlar blok sxema ko’rinishida quyidagicha tasvirlanadi:
5.
Tarmoqlanuvchi algoritmlar blok sxema ko’rinishida quyidagicha
tasvirlanadi:
6.
Takrorlanuvchi yoki
quyidagicha tasvirlanadi:
siklik
algoritmlar
blok
sxema
ko’rinishida
7.
Ichma-ich joylashgan siklik algoritmlar blok sxema ko’rinishida
quyidagicha tasvirlanadi:
Parallel algoritmlar va dasturlar
Ba’zi bir zamonaviy dasturiy ta’minotlarga e’tibor qilsak, ularning ayrim
tuzuvchilari dasturning ishlash effektivligiga va na xotiraning aql bilan
ishlatilishiga e’tibor qilishadi. Ularning fikricha, dastur ko’p joy olsa,
foydalanuvchi qo’shimcha xotira sotib olishga majbur bo’ladi yoki yangi tezroq
ishlaydigan komyuter sotib oladi. Lekin kompyuterlarning tezligi cheksiz
kattalashmaydi. U simli kabelda elektronlarning harakat tezligi bilan, optik
kabellarda yorug’likning tarqalish tezligi bilan va hisoblashda qatnashadigan
kompyuterlar orasidagi aloqa kanallarining komutativlik tezligi bilan
chegaralanadi. Boshqa cheklovlar kompyuter imkoniyatlari bilan bog’liq emas,
balki qo’yilgan masalaning murakkablik darajasiga bog’liq. Shunday masalalar
mavjudki, ularni yechish uchun eng tez ishlaydigan algoritmlar qo’llanilganda
ham odam umri yetmaydi. Bu masalalar orasida yaqinroq javob olish uchun
algoritmlar kerak bo’ladigan, juda zarurlari ham mavjud.
Komyuter sistemalarini to’rtta asosiy kategoriyaga ajratish mumkin. Bu
uchun qanday ishlashi haqidagi ko’rsatmani birmuncha almashtiramiz. Markaziy
protssessor nuqtai nazaridan dastur rasshifrovka qilish va bajarish kerak bo’lgan
qoidalar oqimidir. Ma’lumotlarni ham oqim ko’rinishida kiruvchi deb hisoblash
mumkin. Biz tahlil qiladigan to’rtta kategoriya ma’lumot va qoidalarning bitta
oqimga kirish-kirmasligi bilan aniqlanadi.
Bitta qoida / bitta ma’lumotlar oqimi (SISD).
Bitta qoida / bitta ma’lumotlar oqimi (SISD) modeli o’zida bitta
protssesorli klassik modelni ko’rsatadi. Unga eski avlod kompyuterlari bilan bir
qatorda ko’pgina zamonaviy kompyuterlar ham misol bo’ladi. Bunday kompyuter
protsessori har qanday vaqt momentida faqatgina bitta qoidani bajarishga qodir
va faqat bitta ma’lumotlar to’plami bilan ishlay oladi. Bu kabi ketma-ket
sistemalarda boshqa kategoriyalardan farqli ravishda hech qanday parallellik
yo’q.
Bitta qoida / bir nechta ma’lumotlar oqimi (SIMD).
Bitta qoida / bir nechta ma’lumotlar oqimibo’lgan komyuterlarda (SIMD)
bir xil operatsiyani turli xil ma’lumotlar bilan ishlovchi bir nechta protssessorlar
mavjud. SIMD - mashinalar ba’zan vektorli protsessorlar deb ham ataladi, chunki
ular vektorlar ustida amal bajarish uchun juda qulay. Bunda har qaysi protssesorga
bitta vector koordinasi beriladi va amal bajarilgandan so’ng natija vektor kelib
chiqadi. Masalan, vektorlarni qo’shish – koordinatalar orqali bajariladigan amal.
Vektorlar yig’indisining birinchi koordinatasi – qoshiluvchi vektorlar birinchi
koordinatalarining yig’indisi, ikkinchi koordinata – ikkinchi koordinalar
yig’indisi va hokazo. Bizning SIMD mashinada har qaysi protssesor kiritiluvchi
vektorlarning ikkita koordinatasini haqida qoidasi oladi. Bu yagona qoidani
bajargandan so’ng natija to’liq hisoblanadi. E’tibor bersak, N ta elementdan iborat
vektorni yechishga SISD mashinaga N ta iteratsion siklni bajarish kerak bo’lsa,
protsessorlar soni N tadan kam bo’lmagan SIMD – mashinaga bitta amalning o’zi
yetarli.
Bir nechta qoida / bitta ma’lumotlar oqimi MISD
Bir vaqtda faqat bir xil ma’lumotlar ustida amal bajarish avval g’alati
tuyulishi mumkin, chunki qandaydir bir sonni kvadratga ko’tarish, ikkiga
ko’paytirish, o’nga bo’lish kabi dasturlar kamdan-kam uchraydi. Lekin bu holatga
boshqa nuqtai-nazardan qarasak, bunday tipdagi mashinalarda sonning tub yoki
murakkabligini tekshirishni takomillashtish mumkinligini ko’ramiz. Agar
protsessorlar soni N ta bo’lsa, unda biz ixtiyoriy 1 va N2 orasidagi sonlarning tub
yoki murakkabligini MISD – mashina orqali bitta operatsiyada tekshirishimiz
mumkin. Agar X son murakkab bo’lsa, unga to’g’ri kelmaydigan bo’luvchisi
bo’lishi kerak. Sonning tubligini tekshirish uchun X<N2 sonni birinchi
protsessorga ikkiga bo’lishga, ikkinchisini uchga bo’lishga, uchinchisini to’rtga
va hokazo (K-1) protsessorni K ga bo’lishga buyruq beramiz. Demak bunda N tub
sonmi yo’qmi degan savolga javob berish uchun N ta protsessorga har biriga 2 ga,
3 ga … N ga bo’l deb buyruq berish kerak bo’ladi. Bu masalani yechishda bizning
yo’limiz qo’l kelishi mumkin.
Bir nechta qoida / bir nechta ma’lumotlar oqimi MIMD
Bu kategoriya kategoriyalar orasida ancha murakkabidir. MIMD –
sistemalar holatida biz o’z qoidasini amalga oshira oladigan bir nechta protsessor
bilan ish ko’ramiz. Bundan tashqari, bir nechta ma’lumotlar oqimi ham mavjud
va har qaysi protsessor o’z ma’lumotlar to’plami bilan ishlay oladi. Bu amaliyotda
MIMD – sistema har qaysi protsessorda o’z dasturini yoki o’sha dasturning
alohida qismlarini yoki SIMD – konfiguratsiyaday vektorli amallarni bajara
olishini anglatadi. Ko’pchilik parallelizmning yangicha yondashuvlarida, masalan
komyuter klasterlari yoki multiprotsessorli sistemalarning asosida MIMD –
kategoriya yotadi.
Parallel kompyuterlar tizimlari arxitekturasida ikkita jihat asosiy rol
o’ynaydi:
1. Protesssorlar va ularning xotiralari o’zaro qanday bog’langanligi;
2. Protsessorlarning qanday o’zaro ta’sir qilishi.
Parallel algoritmlarni muhokama qilganda biz ana shu jihatlar haqida
gapiramiz. Negaki u yoki bu yechimlar turli masalalar uchun turli samaradorlikka
ega bo’lishi mumkin.
Kuchsiz bog’langan mashinalarda ham protsessor o’z xususiy xotirasiga
ega. Lekin protsessorlar o’rtasidagi aloqa tarmoq kabellari orqali amalga
oshiriladi.
Kompyuterlar klasterlarining arxitekturasi quyidagicha:
1. Klasterning har bir kompyuteri alohida kompyuter tizimi va mustaqil
ishlay oladi.
2. Parallellik bosh boshqaruvchi kompyuter orqali masalani
kompyuterlarga taqsimlash hisobiga amalga oshiriladi.
Shina aloqali mashinalarda barcha protsessorlar umumiy markaziy
xotiradan foydalanadi. Protsessorlar o’rtasida o’zaro ta’sir shunday amalga
oshiriladiki, bunda ulardan biri axborotni umumiy xotiraga yozadi, boshqalari esa
shu yerdan o’qib oladi.
Parallel algoritmlarni va dasturlarni shakllantirish bir qancha mustaqil
bosqichlardan iborat. Bularni 4 ta asosiy bosqichlarga bo’lishimiz mumkin:
1-bosqich. Dekompozitsiya;
2-bosqich. Kommunikatsiyani loyihalash;
3-bosqich. Mustahkamlash;
4-bosqich. Hisoblashni rejalashtirish;
1-bosqich. Dekompozitsiya (segmentlash, bo’laklash).
Ma’lumotlarni dekompozitsiyalash, bu- ma’lumotlarni va algoritmlarni
qayta ishlov berish uchun segmentlarga bo’lishdir.
Ma’lumotlar taxminan bir xil hajmdagi qismlarga (fragmentlarga)
bo’linadi, qismlar ularni qayta ishlash operatorlari bilan bog’lanadi, undan so’ng
keying vazifalar hosil qilinadi. So’ngra uzatish zarur bo’lgan ma’lumotlar
belgilanadi, zarur bo’lmaganlari olib tashlanadi.
Boshlanishida eng ko’p murojaat qilinayotgan kichik hajmdagi axborotlar
tahlil qilib chiqiladi. Ma’lumotlar strukturasini dekompozitsiya qilishda statik
yoki dinamik dekompozitsiya qilish sxemalaridan foydalanish mumkin.
Jarayonning boshida, funksional dekompozitsiya amalga oshiriladi.
Hisoblash algoritmlari segmentlanadi, so’ng shu sxema asosida
dekompozitsiyalangan ma’lumotlar jo’natiladi. Bu uslub parallellashtiriladigan
ma’lumotlar strukturasi uchun to’g’ri keladi. Quyidagi tafsiyalar bajarilsa
dekompozitsiyaning samaradorligiga erishiladi:
Dekompozitsiyalangandan so’ng buyruqlar soni protsessorlar soniga mos
kelishi kerak.
Buyruqlar deyarli bir xil hajmda bo’lishi kerak.
Topshiriqning hajmi oshishi bilan buyruqlar soni ham bir topshiriqdagi
buyruqlar soniga proporsional ravishda oshishi kerak.
Buyruqlar hajmi algoritm asosida aniqlanadi. Bu asos bir blokdagi
operatsiyalar soniga mos ravishda olinadi:
Kichik asosli parallellashtirish – buyruq darajasida: 20 dan 1000 tagacha
buyruqlar parallel bajariladi, bir blokdagi o’rtacha buyruqlar soni 5 tani tashkil
qiladi.
O’rta blokli parallellashtirish – protsedura darajasida: blokdagi
buyruqlar 2000 tagacha bo’ladi. Protseduralar orasidagi bog’liqlikni amalga
oshirirsh murakkab. Kommunikatsiyadagi talablar keyingilarda ko’ra pastroq.
Yirik blokli parallellashtirish – topshiriq darajasida: Mos ravishda,
mustaqil
dasturlarni parallel kompyuterlarda bajarishdir. Yirikblokli
parallellashtirshni OT qo’llab quvvatlashi talab etiladi.
Dekompozitsiyaning asosiy sharti – buyruqlarning mustaqilligidir:
-ma’lumot bo’yicha mustaqil, qachonki ma’lumotlar dasturning biror
qismida foydalanilayotganda boshqa qism orqali o’zgartirilishi kerak emas;
-boshqaruv bo’yicha mustaqillik, dasturning bajarilish ketma-ketligi dastur
bajarilish jarayonida aniqlanishi kerak;
-resurslar bo’yicha mustaqillik, hisoblash jarayonida kompyuter resurslari
yetarli bo’lishi kerak;
-kiritish\chiqarish bo’yicha mustaqillik, buyruqlar uchun biror faylga
o’qish/yozish, o’zgartirish uchun ruxsat berilishi kerak;
2-bosqich.Kommunikatsiyani loyihalash
Kommunikatsiyaning asosiy turlari:
- Ichki Kommunikatsiya ,har bir buyruq boshqa buyruqlar majmui bilan
bog'liq bo'ladi;
-Umumiy Kommunikatsiya, har bir buyruq boshqa bir qator bilan bog'liq
bo'ladi;
- Strukturali Kommunikatsiya, buyruqlar va kommunikatsiyaning doimiy
tuzilishini, topologiyasini tashkil etadi;
- Statik Kommunikatsiya, sxema kommunikatsiyasida vaqt bilan bog’liq
o'zgarish kutilmaydi;
- Dinamik kommunikatsiya, dastur ishlashi paytida sxema
kommunikatsiyasida o’zgarishlar yuzaga keladi;
- Sinxron kommunikatsiya , jo'natuvchi va qabul qiluvchi ma'lumotlar
almashishda muvofiqlashtiriniladi.
- Asinxron Kommunikatsiya, ma'lumotlar almashishda muvofiqlashtirish
bajarilmaydi.
3-bosqich. Mustahkamlash.
Ushbu bosqichda, bir hisoblash tizimi arxitekturasi ko'rib chiqiladi.
Dastlabki ikki bosqichda olingan vazifalar protsessorlar soniga mos
birlashtiriladi. Buning uchun quyidagi shartlar keyingi bosqichga o’tkazadi:
- Kommunikatsiya uchun tizim xarajatlari kamaytiriladi;
- Hisoblashlardan nusxa olinayotganda yoki mustahkamkash amalga
oshirilayotganda dastur faoliyatida yo’qotilish kuzatilinmasligi kerak;
- Topshiriq natija qaytarganda taxminan bir xil tipdagi ma’lumot bo’lishi
kerak;
-Dasturning parallel holatda ishlash imkoniyati saqlab qolinishi shart,
- Rivojlanish murakkabligi kamaytirish lozim.
4-bosqich. Hisoblashni rejalashtirish;
Parallel dasturlashning asosiy o’lchovi – samaradorligi dastur bajarilishiga
ketgan eng qisqa vaqtdir. Protsessorlarga buyruq oqimlarini bo’linayotganda
maksimal darajada bir-biriga nisbatan bog’lanmagan bo’lishi kerak. Buning
uchun quyidagi strategik sxemalar bajariladi:
- "Boshliq/ishchi “ sxemasi
- “Boshliq/ishchi” ieararxik sxemasi
- Markazlashmagan strategiyasi.
"Boshliq/ishchi “ sxemasida vazifalar asosiy vazifa(Boshliq) o’ziga
biriktirilgan “ishchi” vazifalarga yuklanadi. Ishchi dasturlar asosiy dasturdan
ma’lumotlarni qabul qiladi va qayta ishlab asosiy dasturga yuboradi.
1-rasm. “Boshliq/ishchi” o’rtasidagi topshiriqlarni joylashish sxemasi.
“Boshliq/ishchi” ieararxik sxemasida topshiriq buyruqlarga bo’linadi
(2-rasm), har bir buyruqlarning yuqorisida bosh buyruq bo’ladi, barcha bosh
buyruqlar esa asosiy topshiriqga birlashadi
2-rasm. “Boshliq/ishchi” ieararxik sxemasi
Markazlashmagan sxema (3-rasm). Bunday holatda bosh buyruq
bo’lmaydi, ma’lumotlar belgilangan bir qancha strategiyalar asosida amalga
oshiriladi.
3-rasm. Buyruqlarni taqsimlanishining markazlashmagan sxemasi
Xulosa.
Men, KIF-710-21 guruh talabasi Zakirov Biloljon, Kompyuter arxitekturasi
fanidan "Parallel hisoblash uchun moʻljalangan masalalar" mavzusida bajargan
mustaqil ish jarayonida ushbu mavzuga aloqador koʻplab maʼlumotlarga ega
boʻldim. Egallagan bilimlarimni amaliyotda tadbiq etaman.
Foydalanilgan adabiyotlar ro’yxati
https://tami.uz/matnga_qarang.php?id=371
http://refleader.ru/jgeqasmerpolaty.html
https://intuit.ru/studies/courses/1146/238/lecture/6153
Мусаев М.М. “Компьютер тизимлари ва тармоқлари”. Тошкент.: “Aloqachi”
нашриёти, 2013 йил. 8 боб. 394 бет. – Олий ўқув юртлари учун қўлланма.
Download