|
Kirish. Parallel hisoblash uchun mo‘ljallangan masalalar
|
Sana | 01.07.2024 | Hajmi | 64,56 Kb. | | #266323 |
Bog'liq Parallel ishlov berish
Reja:
Kirish. Parallel hisoblash uchun mo‘ljallangan masalalar.
Parallelashtirish – ishlov berish tezligini oshirishning bir yo‘li.
Parallel qayta ishlash, ma’lumotlarni taqdim etish va buyruqlarni amalga oshirishda apparat vositalarning vazifalari,
Xotirani tashkillashtirish va xotira turlarining asosiy xususiyatlari.
KIRISH.
Eng avvalo kompyuterda parallel dasturlash kerakmi degan savolga javob olish kerak. Lekin bu savol javob olishni istagan yagona savol emas. Aynan shuning uchun ham, parallel hisoblash dunyosini tushunish qiyin bo'lgan sodda, tushunarli, tushunarli dunyodan navbatdagi hisob-kitoblardan nima o'tish kerakligini tushunish ham muhimdir. Parallel hisoblashning afzalliklari nimadan iborat va parallel hisobga yo'naltirilgan dasturlarni yaratishda dasturchi uchun qanday muammolar kutilmoqda. Ushbu savollarga javob berish uchun keling, kompyuterni rivojlantirish tarixini tezroq ko'rib chiqamiz.
Birinchi kompyuterlar Fon Neyman tomonidan ishlab chiqilgan printsiplarga muvofiq qurilgan. Ularning uchta asosiy komponenti bor edi: xotira, protsessor va kirish va chiqish ma'lumotlarini beruvchi tashqi qurilmalar to'plami.
Xotira ko'p darajali va tashqi xotirasi va ichki xotirasi bo'lgan birinchi kompyuterlar uchun - operatsion va ro'yxatga olish xotirasi. Tashqi xotira (magnit lenta, punch karta, disklarda) kompyuterning yoqilgan yoki yoqilmaganligidan qat'iy nazar, dastur va ma'lumotlarni saqlash imkonini berdi. Ichki xotira faqat kompyuter bilan sessiya davri uchun ma'lumot saqlanadi. Kompyuterni o'chirib qo'ysangiz, ichki xotiraning mazmuni g'oyib bo'ldi.
Dastur kompyuterda bajarilishi uchun u RAMga yuklanishi kerak edi. U o'sha dasturda ishlangan ma'lumotlar kabi saqlangan. Xotirada saqlangan dasturning printsipi Von Neumann kompyuterlarining asosiy tamoyillaridan biridir.
Ro'yxatdan o'tish xotirasi hisoblash vaqtida ishlatilgan. Ma'lumotlar bo'yicha ba'zi operatsiyalarni bajarishdan oldin, ma'lumotlar registrlarda joylashtirilishi kerak. Ushbu tezkor xotira turi ma'lumotlar bo'yicha operatsiyalarni bajarishda zarur tezlikni ta'minladi.
Barcha operatsiyalarni bajarish - hisoblash jarayonini boshqarishda ma'lumotlar va operatsiyalar bo'yicha operatsiyalarni protsessor amalga oshirdi.
Parallel hisoblashda bir xil dasturni parallel bajarish nazarda tutiladi. Parallel hisoblash bir dasturning bajarilish vaqtini kamaytirish imkonini beradi.
Parallel hisoblash uchun mo‘ljallangan masalalar
Ko'p dasturlash uchun kompyuterning bir nechta protsessorlarga ega bo'lishi juda muhim. Ko'p dasturlashni amalga oshirish uchun protsessorlarning o'zaro ishlashini tashkil qiluvchi operatsion tizim mavjudligi etarli.
Parallel hisoblash uchun dasturning o'zi uchun zarur bo'lgan qo'shimcha talab mavjud - dastur hisoblarni parallellashtirish imkoniyatini yaratishi kerak, chunki operatsion tizimning ko'rinishi kompyuterni apparat (xotira, protsessorlar, boshqa qurilmalar) deb hisoblash mumkin emasligini anglatadi. Endi u ikki qismga ega: qattiq (qattiq) va yumshoq (yumshoq) - bir-birini to'ldiruvchi apparat va dasturiy komponentlar. Yarim asrdan ko'proq vaqt mobaynida komponentlar tez rivojlana boshladi, asbobuskunalar uchun eksponentsional o'sishni odatiy holga keltirdi, bu Murning taniqli ampirik qonunida aks ettirilgan - barcha muhim belgilar kattalashib ketgan - barcha darajalarda xotira hajmi, xotiraga kirish vaqtini kamaytirish, protsessor tezligi. Murning qonuniga ko'ra (Gordon Moore Intelning asoschilaridan biri), xarakterli qiymatlar har yarim yilda ikki baravarga ko'paydi. Kompyuterga kiritilgan protsessorlarning soni ham ortdi. O'zgarildi va kompyuter arxitekturasi. Ushbu o'zgarishlar ko'p jihatdan hisoblarni parallellashtirishga qaratilgan qadamlar edi. Bu erda parallelizatsiya jarayoni bilan bevosita bog'liq bo'lgan protsessor arxitekturasidagi o'zgarishlarning bir qismi:
Buyruqlar chizig'ini qayta ishlash. Protsessor tomonidan buyruqlar oqimini bajarish jarayoni endi buyruq buyrug'i ketma-ket ravishda bajarilmasligi sifatida ko'rilmaydi. Buyruqlar oqimini qayta ishlash jarayoni quvur liniyasida amalga oshirildi, shuning uchun bir nechta buyruqlar bir vaqtning o'zida bajarishga tayyorlandi. Bir-biriga bog'liq bo'lmagan buyruqlar bir vaqtning o'zida bajarilishi mumkin, bu allaqachon haqiqiy parallelizmdir. "Uzoq buyruqlar".
Ba'zi bir kompyuterlarning arxitekturasi bir nechta protsessorlarni o'z ichiga olgan bo'lib, ular mantiqiy va arifmetik operatsiyalarni butun sonlar bo'yicha bajarish imkonini beradi, bir nechta protsessorlar suzuvchi nuqtali raqamlarda operatsiyalarni amalga oshiradi. Uzoq buyruq bitta buyruqda mavjud protsessorlarning har biri bajarishi kerak bo'lgan amallarni ko'rsatishga imkon berdi. Bu esa, apparat darajasida parallelizmni amalga oshirish imkonini berdi Vektorli va matritsali protsessorlar. Ushbu protsessorlarning ko'rsatmalar to'plami vektorlar va matritsalar bo'yicha asosiy operatsiyalarni o'z ichiga oladi. Masalan, bitta guruh ikkita matritsani qo'shishlari mumkin. Bunday buyruq parallel hisoblashlarni amalga oshiradi. Ushbu operatsiyalar ma'lumotni qayta ishlash asoslarini tashkil etuvchi ilovalar keng tarqalgan.
Ma`lumotlarning parallel ishlashi ushbu klassdagi ilovalarning samaradorligini sezilarli darajada oshirishi mumkin. Dasturiy ta'minot darajasida parallel ijro etiladigan dasturlarning yana bir muhim turi - grafik tasvirlar bilan intensiv ishlash. Ushbu ishlash grafik ishlovchilar tomonidan amalga oshiriladi. Grafik tasvirni ballar to'plami sifatida ko'rish mumkin. Rasmni qayta ishlash ko'pincha hamma punktlarda bir xil operatsiyani bajarish uchun kamayadi. Ushbu vaziyatda ma'lumotlar parallelizatsiyasi osongina amalga oshiriladi.. Shu sababli, grafik protsessorlar avvaldan ko'p yadroli bo'lib, bu jarayonni parallellash va tasvirni samarali ishlash imkonini beradi. Superkompyuterlar hozirgi vaqtda eng yuqori ko'rsatkichlarga ega bo'lgan kompyuterlarni o'z ichiga oladi. Ular yuz minglab protsessorlardan iborat. Superkompyuterlardan samarali foydalanish hisob-kitoblarning eng keng tarqalgan parallelligini o'z ichiga oladi ..
Ilmiy tadqiqotlarda va yangi texnologiyalarda mavjud hisoblash tizimlarining barcha kuchini talab qiluvchi vazifalar mavjud. Mamlakatning ilmiy salohiyati ko'p jihatdan o'zining superkompyuterlari mavjudligi bilan belgilanadi. Superkompyuterning kontseptsiyasi nisbatan nuqtai nazardir. O'n yillik superkompyuterning xususiyatlari odatdagi kompyuterning xususiyatlariga mos keladi. Bugungi superkompyuterlar petafloplarda (1015 dona perimetrli operatsiyalar) o'lchovlarda ishlaydi. 2020 yilga qadar superkompyuterlarning ishlashi 1000 barobarga oshadi va eksaflopslarda o'lchov qilinadi Kompyuterlar tasniflash Kompyuterlar dunyosi miniatyura o'rnatilgan kompyuterlardan individual binolarni ishlaydigan ko'p tonna superkompyuterlarga qadar farq qiladi. Ular turli yo'llar bilan tasniflanishi mumkin.
Birinchi va eng sodda tasniflardan biri - Flynn tasniflashini ko'rib chiqing, bu ma'lumotlar kompyuterda qanday ishlashga asoslangan. Ushbu tasnifga ko'ra, barcha kompyuterlar (komp'yuter komplekslari) to'rtta sinfga bo'linadi - arxitekturali kompyuterlar: SISD (Single Instruction stream - yagona ma'lumotlar oqimi) - bitta ma'lumot oqimi - bitta ma'lumot oqimidir. Bu sinf, programma buyruqlar ketma-ket bajarilganda, keyingi ma'lumotlar elementini qayta ishlashda von Neumann arxitekturasiga ega oddiy "ketma-ket" kompyuterlarni o'z ichiga oladi SIMD (bitta yo'riqnoma oqimi - bir nechta ma'lumotlar oqimi) - bitta buyruq xartasi - bir nechta ma'lumotlar oqimi.
Vektorli va matritsali protsessorlarga ega kompyuterlar ushbu turga tegishli: MISD (bir nechta yo'riqnoma oqimi - yagona ma'lumotlar oqimi) - bir nechta buyruqlar oqimi - bitta ma'lumot oqimi. Ushbu turdagi ma'lumotlarni o'tkazishning konveyer turiga ega kompyuterlar bo'lishi mumkin.
Parallelashtirish, bir vazifani birdaniga bir nechta paralel o'zgaruvchanlar orqali yechish imkonini beradigan bir yo'ldir. Bu yo'l asosan kompyuterlar yoki parallel protsessorlar yordamida amalga oshiriladi. Parallelashtirishning quyidagi usullari ishlov berish tezligini oshirish uchun foydalaniladi:
1. Fork-join model: Ushbu model parallelashtirish uchun keng qo'llaniladi. Vazifalar ko'plab qismlariga bo'linadi (fork) va har biri bir-biridan alohida parallel ishlaydi. Natijada, barcha parallel ishlar bajarildi va yechimlar biriga to'planadi (join).
2. SIMD (Single Instruction, Multiple Data) parallelashtirish: Bu usulda bir vaqt ichida bir nechta o'zgaruvchilarni parallel ravishda hisoblash imkoniyati mavjud. Ushbu usul ko'plik ishlarini bir vaqt ichida bajarishda foydalaniladi.
3. MPI (Message Passing Interface): Ushbu interfeys yordamida ma'lumotlar bir necha kompyuter orasida parallel ravishda almashinuv yaratadi. Bu, ommabop paralel hisoblash arxitekturasida xizmat qiladi.
4. OpenMP (Open Multi-Processing): Bu parallel ko'rish modeli xususiyatlaridan foydalanib, to'liq ishlash platformalaridagi ishlarni parallel ravishda bajarishda yordam beradi.
5. GPU (Graphics Processing Unit) paralellik: Bu usulda grafik yechimlarni ishlov berish uchun GPU-ni yordamida parallel ravishda amalga oshirish mumkin. Bu bir nechta hisoblash liniyalarini bir vaqtda ishlatish imkonini beradi, shuningdek ko'p nufuzli grafik ishlab chiqarish vazifalarini bajarishda ishlov berish tezligini oshiradi.
6. Cloud parallelashtirish: Buluttalim tizimlarida, hisoblash resurslari alohida kompyuterlar orqali parallel ravishda bo'lishadi. Bu o'zgaruvchilar uchun yuqori platformani taqdim etadi va ishlov berish tezligini oshiradi.
Bu yo‘llar, parallelashtirishning farkli usullari bilan bajarilishi mumkin va ishlov berish tezligini oshirishda muhim rol o'ynayadi. Uyghurish va asoslash tekshirish jarayonlaridan o'tkazilgan holda, bu yo'llardan foydalanish orqali, imkoniyatlaridan maksimal darajada foydalanib, ishlov berish tezligini oshirish mumkin.
Kompyuterda parallelashtirishning bir necha yo'llari mavjud:
1. Ko'p intizomli protsessorni o'rnatish: Endi ko'p intizomli protsessorlarga ega bo'lgan kompyuterlar mavjud, bu protsessorlar bir nechta ishni bir vaqtda bajara oladilar. Bu parallel ishlashni muvaffaqiyatli amalga oshirishning bir yo'lidir.
2. Parallel kompyuterlar tizimi: Bu usulda bir nechta kompyuter bir-biriga ulanadi va birlikda taklif etgan vazifalarni bajarish uchun ishlab chiqilgan mavzu ko'radi. Bunday tizimlar, paralel hisoblash bilan bog'liq vazifalarni yechish va ish tezligini oshirish uchun ishlatiladi.
3. Grafik ishlab chiqarishga asoslangan parallelashtirish: Grafikni ishga solishda, parallelashtirilgan algoritmlar ishlatiladi, bu da ish tezligini oshirishga imkon beradi. Grafik ishlab chiqarishning parallelashtirish yo'li, bir nechta grafik yuborish komandalarini bir vaqtda bajara oladigan parallel vositalaridan foydalanadi.
4. Ma'lumotlar bilan yashirin parallel ishlash: Bu usulda, bir ma'lumotni alohida bo'lmagan qismiga bo'lishgan parallel ishlar bir vaqtda amalga oshiriladi. Misol uchun, ma'lum bir faylni ko'proq tarmoq portlari yordamida bir nechta kompyuter, faylni barcha qismlarga bo'lib, har bir qismni parallel ravishda o'qishga imkon beradi.
Paralelashtirishning kompyuterda ish tezligini oshirishning bir yo'li deb hisoblanadi, chunki bir nechta hisoblash vositalari bir vaqtda bir nechta ishlarni biriktirib bajarish va bu ishni yatay va vertikal parallellikda amalga oshirish, yani bir-biriga bog'liq ishlarni bir vaqtda bajarish imkonini beradi. Bunda, ish tezlanadi va ishlab chiqarish samaradorligi oshadi.
Parallel qayta ishlash, ma'lumotlarni taqdim etish va buyruqlarni amalga oshirishda apparat vositalarining muhim vazifalarni o'z ichiga oladi. Bu vazifalar quyidagilardan iborat bo'lishi mumkin:
Ishlab chiqarish (Processor): Parallel qayta ishlash, bir nechta protsessorlar yoki chiplar tomonidan bajariladi. Ishlab chiqarish apparati, berilgan ma'lumotlar va buyruqlarni paralel ravishda qabul qilib, to'g'ridan-to'g'ri amalga oshiradi. Bunda har bir paralel apparat o'ziga ma'lumotlarni yuklash, bilan ishlash va natijani saqlash ma'lumotlar bazasini bajaradi.
To'g'ri almashinuv yoki kommunikatsiya vositalari: Parallel qayta ishlashda, ma'lumotlarni bir vaqtda bir ma'suliyatli protsessorlarga uzatish uchun kommunikatsiya vositalaridan foydalaniladi. Bu vositalar, paralel apparatlar o'rtasida ma'lumot almashinuvi yaratadigan kanallari ta'minlayadi. Ushbu kanallar yordamida ma'lumotlar, buyruqlar va natijalar o'zgartirilmaydi va bir biriga o'z vaqti ichida tashqarida ta'minlanadi.
Tizim ichidagi ko'proq baland sinalar uchun tarqatish (Multiplexing): Parallel qayta ishlashning bir qismi, ko'p sinalarni bir vaqtda olib borishdir. Bu, ma'lumotlar, buyruqlar va natijalar o'rtasidagi to'g'ri sinalar yordamida parallel tarqatiladi. Shu bilan bir qancha apparatlarning bog'lanishi va ma'lumotlar yo'l bilan uzatilishi uchun minimal vaqt sarflanadi.
Eskalatsiya va parallel ishlab chiqarish (Scalability and Parallel Processing): Parallel qayta ishlash, apparat vositalarini mo'ljallangan parallel arxitekturadagi ko'pliklarga qo'llab-quvvatlash imkonini beradi. Bu, kompyuter tizimini balandlashing va kelgusi ta'nqidlangan vazifalarni parallel ravishda bajarish uchun qo'llaniladi. Bu vositalar yordamida ma'lumotlarni bir vaqtda ko'pliklar orqali ishlab chiqarish mumkin bo'lib, belgilangan ma'lum bir vazifani tez va samarali bajarish imkonini yaratadi.
Vazifalar o'rtasidagi resurslarning ijro etilishi va qismatlash (Task Scheduling and Partitioning): Parallel qayta ishlashda, vazifalar o'rtasidagi tashkil etish, resurslar vaqtni qanday qilib bo'lishi va nimaqanday apparatlarga topshirilishi kerakligini belgilaydi. Bu, vazifalar va ma'lumot portlashining aniq va afzallikli tashkilini ta'minlayadi.
Bu tarkibiy vositalar orqali, parallel qayta ishlash tezligi va efektivligi oshiriladi. Ushbu apparatlar parallel hisoblashda katta ahamiyatga ega bo'lib, vazifalar va ma'lumotlar to'g'rimoqchi bo'lganda yuqori samaralar yetkazishga imkon beradi.
Xotira, kompyuter tizimlarida ma'lumotlarni saqlash va o'qish uchun ishlatiladi. Xotiralarning tashkillashtirilish va xususiyatlari quyidagicha bo'lishi mumkin:
1. ROM (Read-Only Memory - O'qishga mo'ljallangan xotira): Bu turi xotiraga o'qish mumkin, lekin o'zgartirib bo'lmaydi. Xotira tashkillarining bu turi ko'plab chipta va qurilmalar bilan tashkil etiladi. ROM odatda injektor (EPROM), elektron spirt (EEPROM) yoki flash xotiralar sifatida mavjud bo'lishi mumkin. ROM tizimlarda dasturlar va ma'lumotlar saqlanishi uchun foydalaniladi.
2. RAM (Random Access Memory - Tasodifiy qo'llaniladigan xotira): Bu xotira turi ma'lumotlarni saqlash va tekshirish uchun o'qish- yozish imkonini beradi. RAM kompyuter tizimlaridagi faollashtirishni saqlash uchun ishlatiladi. Xotiraning bu turi to'g'ridan-to'g'ri yozish va o'qish imkonini beradi, lekin kompyuter tizimi qurilishi o'chirilganda ma'lumotlar yo'qolib ketadi. RAM odatda tezkor xotiralar sifatida ishlatiladi.
3. Cache xotirasi: Cache xotirasi, RAM va protsessor orasidagi tezlik farqini kamaytirish maqsadida ishlatiladi. Bu xotira protsessorning bajarayotgan amallar va ma'lumotlarni saqlash uchun ishlatiladi, unda protsessorga bir oz ko'ra yaqin joylashgan ma'lumotlar saqlanadi. Bu ma'lumotlarga tezkorga kirish imkonini beradi va yurish tezligini oshiradi.
4. Sektor yoki disk xotirasi: Sektor xotirasi, kompyuter tizimlarida disk va ssd sifatida ishlatiladi. Bu xotira turi esa qat'iy yo'ldan o'qish- yozishga imkon beradi. Kompyuterlar bularni ma'lumotlarni saqlash va saqlash uchun ishlatadi. Bu xotiralarning tashkillilari, tegishli disk yoki ssd turlari (solid state drive)dan iborat bo'lib, yuqori to'xtatish tezligi va ko'proq saqlash maydoni bilan ajralib turadi.
5. Virtual xotira: Virtual xotira aslida disk yoki ssd o'rniga kompyuter tizimi tomonidan yaratilgan xotiraga havola etiladi. Bu, kompyuterda o'zgaruvchanli va kam xotirali disk yoki ssd o'rniga oson havola qurish, saqlab qolgan ma'lumotlarni yoyish va boshqa o'zgarishlarni amalga oshirish uchun ishlatiladi.
Xotira turlari kompyuter tomonidan o'zgartirilishi mumkin bo'lgan ma'lumotlar va foydalanuvchilar tomonidan ba'zi talablarga javob berishi uchun ajratilgan. Xotiralar tashkillashtirilish va xususiyatlari, saqlashning turini, saqlashning tezligini va sohasini ta'minlayadi. Tizimlarni samarali ishlatish va ma'lumotlarni o'qish-yozish operatsiyalarini tezlashtirish uchun muhim bo'lgan xotiralar turlarini to'g'ri tanlash kerak.
|
| |