O‘ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA
KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
Kompyuter arxitekturasi
Amaliy ish-9-10
Mavzu: OpenMP va MPI paketlar tarkibini va ishlashini ko’rib chiqish.
Bajardi: Abdullayev Shoxrux
Tekshirdi: Murodullayev Baxtiyor
OpenMP paketlarining ishlash prinsipi
OpenMP API (Application Program Interface) bu o’zida umumiy xotirali parallelashgan C, C++ va Fortran dasturlari uchun komplyator diektivalarini, kutubxonalarni va o’zgaruvchilar tavsifini jamlangan paket hisoblanadi.
C, C++ va Fortran tillarida direktivalar bitta dasturda bir nechta ma’lumotlar (SPMD-single program multiple data) tuzilmasi, vazifalar tuzilmasi, qurilma tuzilmasi, ish almashish tuzilmasi va moslashtirish tuzilmasini umumiy xotiraga o’zlashtirib beradi. Vazifasi ishlash vaqtini nazorat qilish, kutubxona va o’zgaruvchilar bilan ta’minlab berishdir.
OpenMP ning asosiy komponentalari 1-jadval.
Direktivalar
|
O’zgaruvchan muhit
|
Ishlash vaqti muhiti
|
Parallel maydon
|
Oqimlar soni
|
Oqimlar soni
|
Ishni taqsimlash
|
Jadvallar
|
Oqimlar ID
|
Moslashtirish
|
O’zgaruvchan
oqimlarni tartibga solish
|
O’zgaruvchan
oqimlarni tartibga solish
|
Ma’lumotlar ko’lami sifatlari(private, firstprivate, lastprivate,
shared, reduction)
|
Parallelashtirishni qurish
|
Parallelashtirishni qurish
|
Umumlashtirish
|
|
Vaqtni hisoblash
|
|
|
Bloklash uchun API
|
OpenMP paketining kamchiliklari.
OpenMP API yagona foydalanuvchi uchun mo’ljallangan. OpenMP dasturga bog’liq bo’lgan ma’lumotlar bog’liqligini, ma’lumotlar qarama-qarshiligini, muammoli holatlarni tekshirishni talab qilmaydi. Shu bilan birgalikda dasturdagi kodlar ketma-ketligini xam tekshirishni talab qilmaydi. Dasturchilar OpenMP API to’g’ri foydalanib dastur tuzishlari kerak. OpenMP API faqatgina murojaat qilgandan keyingina ishlaydi.
Parallel hisoblash tizimlaridan foydalanish kompyuter sanoatining rivojlanishining strategik yo'nalishlari bilan hisoblanadi. Ko'p yadroli protsessorlarning paydo bo'lishi, superkompyuterga asoslangan tizimlarga qaraganda narxning maqulligi bilan ajralib turadigan, samarali superkompyuterni ishlab chiqishdagi asosiy yo’nalishlardan biri hisoblanadi. Parallel hisoblashni amalga oshirishning turli usullari mavjud. Bu usullar asosida esa ma’lum bir texnologiyalar yotadi va turli dasturlash tillari qo’llab quvvatlaydigan maxsus kutubxonalar yotadi. Lekin yechiladigan masalaning tarkibiga qarab dasturlash tilini va maxsus kutubxonalarni tanlash muhim bir vazifalardan biri hisoblanadi. Ayniqsa, taqsimlangan tizimlar asosida yechiladigan masalalar uchun bir necha maxsus kutubxonlardan foydalanish mumkin. Taqsimlangan xotirali hisoblash mashinalar uchun mo’ljallangan keng tarqalgan dasturlash texnologiyasi Message Passing Interface (MPI) texnologiyasi xisoblanadi [1]. Bu texnologiya arxitekturasi taqsimlangan tizimlar uchun aynan mos keladi (1-rasm).
Taqsimlangan hisoblash – ushbu atamadan odatda ma'lumotlarni parallel ishlov berishni ko‘rsatish uchun foydalanilib, unda bir-biridan yetarlicha uzoqlikda joylashgan bir nechta ishlov berish qurilmalardan foydalaniladi. Ularda ma'lumotlarni aloqa liniyalari orqali uzatish sezilarli vaqt kechikishlariga olib keladi. Natijada hisoblashni tashkil qilishning ushbu usuli yordamida ma'lumotlarni samarali ishlov berish faqatgina past intensivli prosessorlararo ma'lumotlarni uzatish oqimlarining parallel algoritmlari orqali amalga oshirilishi mumkin. Shuni ta'kidlash lozimki, Flinn klassifikasiyasi komp'yuter tizimlarining turlarini aniqlashda keng qo‘llanilganiga qaramasdan, bunday klassifikasiya deyarli barcha parallel tizimlarining (ularning sezilarli xilma-xilligiga qaramasdan) birgina MIMD sinfiga kiritilishiga olib keladi [2].
Natijada, ko‘plab tadqiqotchilar Flinn klassifikasiyasini detallashtirishga urinishdi. Misol uchun, MIMD sinfi uchun deyarli hamma tomonidan qabul qilingan strukturaviy chizma taklif etiladi, unda ko‘p prosessorli tizimlar turlarining ajratilishi ushbu tizimlarda operativ xotiraning tashkil etilish usullariga asoslanadi (2-rasm). Ushbu yondashuv ko‘p prosessorli tizimlarning muhim ikki turini ajratishga imkon beradi: multiprocessor (multiprosessorlar yoki umumiy va ajratilgan xotirali tizimlar) va multikompyuter (multikomp'yuterlar yoki taqsimlangan xotirali tizimlar). MPI texnologiyasi taqsimlangan xotirali tizimlar uchun keng qo’llaniladigan vositalardan biri hisoblanadi (3-rasm).
Ish stantsiyalari va shaxsiy kompyuterlar klasterlarida parallel hisoblash juda yuqori salohiyatga ega, chunki u mavjud apparat va dasturiy ta'minotdan foydalanadi. Parallel dasturlash muhitlari foydalanuvchiga parallel hisoblash va aloqani ifodalashning qulay usulini taklif etadi. MPI - bu shunday dasturlar to‘plami bo‘lib, C yoki FORTRAN dasturlash tilida yozilishidan qatiy nazar, har birining o‘zining mustaqil dasturlarini (mutlaqo bir xil bo‘lmagan) bajaradigan jarayonlar to‘plamidir. MPI dasturining ishlash jarayonida aloqa jarayonlarini chaqirib, bir-biriga o‘zaro ta'sir o‘tkazadi. Taqsimlangan ishlov berish tizimlari uchun mo‘ljallangan har bir jarayon o‘zining manzil maydonida ishlaydi. MPI parallel dasturlarni yaratishni qo'llab -quvvatlaydi, bu jarayonlarni har xil manba kodlari bilan birlashtirishni anglatadi. Biroq, bunday dasturlarni yozish va disk taqsimlash juda qiyin, shuning uchun amalda dasturchilar ko'pincha parallel dasturlashning SPMD (bitta dasturlash, ko'p ma'lumotlar) modelidan foydalanadilar, bunda bir xil kod barcha parallel jarayonlar uchun ishlatiladi. MPI kutubxona asosida dasturni tuzishda tegishli kutubxona modullarini bog'lash zarur. Bajariladigan faylni uzatilgandan so'ng, uni kerakli miqdordagi protsessorlarda ishga tushirish kerak bo’ladi. Ishga tushgandan so'ng, xuddi shu dastur barcha ishlaydigan jarayonlar tomonidan bajariladi, tizimga bog'liq holda natija terminalga chiqariladi yoki faylga yoziladi [3]. 116 MPI standarti foydalanuvchi interfeysi va funksionalligini sintaksis va semantika nuqtai nazaridan, xabarlarni uzatishning keng doirasi uchun kutubxona tartiblarining standart yadrosini belgilaydi. Spetsifikatsiya kompyuterning keng doiradagi arxitekturalarida samarali amalga oshirilishi mumkin. U taqsimlangan xotirali parallel kompyuterlarda, umumiy xotirali parallel kompyuterda ish stantsiyalari tarmog'ida yoki haqiqatan ham bitta ish stantsiyasida ishlaydigan jarayonlar to'plami sifatida ishlashi mumkin. Arxitektura uchun MPI kutubxonasi mavjud bo'lsa, xuddi shu manba kodi ishlashi mumkin [1]. Masalan, standart Unix protsessorlararo aloqa protokollari ustiga MPI ilovasi ish stantsiyalari klasterlari va ish stantsiyalarining geterogen tarmoqlari uchun portativlikni ta'minlaydi. Xulosa qilib shuni ta’kidlash mumkinki, ma'lumotlarga ishlov berish tezkorligini oshirish masalasi dolzarb masalalardan bo‘lib kelmoqda. Buning yechimi sifatida prosessorlar taktik chastotasini oshirish bilan tezkorlikga erishildi, ammo bu tranzistorlar sonini oshirish va ular orasidagi masofani qisqartirish evaziga amalga oshirildi. Bu esa prosessorlarni qizib ketishiga va ortiqcha energiya sarfiga olib keldi. Ba’zi masalalarni yechishda esa taqsimlangan hisoblash tizimlari yaxshi natijalar berish imkoniga ega hisoblanadi. Bunga albatta xabarlar jo’natish protokollari asosida ishlovchi MPI texnologiyasi ijobiy natijalar beradi.
Do'stlaringiz bilan baham: |