Muhammad Al-Xorazmiy nomidagi Toshkent Axborot Texnologiyalari Universiteti Nukus filiali Kompyuter injiniringi fakulteti Kompyuter injiniringi guruhi talabasi Atajanova Gulnozaning Kompyuter arxitekturasi fanidan



Yüklə 23,68 Kb.
tarix28.11.2023
ölçüsü23,68 Kb.
#132978
gulnoz arxitektura


Muhammad Al-Xorazmiy nomidagi Toshkent Axborot Texnologiyalari Universiteti Nukus filiali
Kompyuter injiniringi fakulteti
Kompyuter injiniringi guruhi talabasi Atajanova Gulnozaning Kompyuter arxitekturasi fanidan

Mustaqil ishi



Mavzu: MPI tehnologiyasi.Yordamchi parallelashtirish kutubxonalari.


Bajardi: 1001-20 KI UZB
Sadirbayeva Feruza
Tekshirdi:____________

NUKUS 2023
MPI tehnologiyasi.Yordamchi parallelashtirish kutubxonalari.
Reja:
Kirish

  1. MPI ning asosiy maqsadi

  2. MPI ga yuklatilgan topshiriqlar

  3. MPI jarayonlarini ishga tushirish va yopish funktsiyalari;

  4. MPI - Ma'lumotlarni parallel qayta ishlash

Xulosa

Kirish
‗zbekiston Respublikasi Prezidenti Sh. Mirziyoyevning 2017 yil 7 fevraldagi ―O‗zbekiston Respublikasini yanada rivojlantirish bo‗yicha harakatlar strategiyasi to‗g‗risida‖ PF-4947-sonli Farmoni tasdiqlandi. Harakatlar strategiyasining maqsadi olib borilayotgan islohotlar samaradorligini tubdan oshirishdan, davlat va jamiyatning har tomonlama va jadal rivojlanishini ta‘minlash uchun shart-sharoitlar yaratishdan, mamlakatni modernizatsiyalash va hayotning barcha sohalarini erkinlashtirishdan iboratdir. Ayni vaqtda mamlakatimiz bosib o‗tgan taraqqiyot yo‗lining chuqur tahlili, bugungi kunda jahon bozori kon‘yunkturasi keskin o‗zgarib, globallashuv sharoitida raqobat tobora kuchayib borayotgani davlatimizni yanada barqaror va jadal sur‘atlar bilan rivojlantirish uchun mutlaqo yangicha yondashuv hamda tamoyillarni ishlab chiqish va ro‗yobga chiqarishni taqazo etmoqda [1]. Bugungi kunda telekommunikatsiya va iqtisodiyot sohasida, axborot tarmoqlari oldida turgan vazifalar va maqsadlar tubdan o‗zgardi. O‗zbekistonda makro iqtisodiyot va moliyaviy barqarorlik o‗rnatildi, iqtisodiyotning samarador yetakchisi sifatida olingan telekommunikatsiya sohasida takomillashtirish va texnik jixatdan qayta qurish ishlari amalga oshirilmoqda. Ushbu sohani yanada rivojlantirish uchun zarur bo‗lgan barcha shart–sharoitlar yaratilgan. Jahon axborot – telekommunikatsiya maydonida integratsiyalash ishlari amalga oshirilmoqda


MPI ning asosiy maqsadi
• Xabarlarni uzatish interfeysining asosiy maqsadi parallel uzatish dasturlarini ishlab chiqishni qo'llabquvvatlash uchun keng qo'llaniladigan standartni ishlab chiqishdir.
MPI ga yuklatilgan topshiriqlar
• Xabarni uzatish mexanizmini taqdim etish. • Kodning ko'chirilishini ta'minlash. • Samarali jarayonni amalga oshirishga ruxsat berish.
MPI taqdim etadi:
• Katta hajmdagi funksionallik. • Geterogen arxitekturalarni qo'llab-quvvatlash.
MPI standart ilovalari (kutubxonalar)
• MPICH2 (Open source, Argone NL)
▪ MVAPICH2
▪ IBM MPI
▪ Cray MPI
▪ Intel MPI
▪ HP MPI
▪ SiCortex MPI
• Open MPI (Open source, BSD License)
▪ Oracle MPI 3
MPIni amalga oshirishdagi farqlar
• Qo'llab-quvvatlanadigan protsessor arxitekturalari diapazoni: Intel, IBM, ARM, Fujitsu, NVIDIA, AMD
• Qo'llab-quvvatlanadigan aloqa texnologiyalari / tarmoqlari: InfiniBand, 10 Gigabit Ethernet, Cray Gemeni, IBM PERCS / 5D torus, Fujitsu Tofu, Myrinet, SCI
• Amalga oshirilgan differentsial almashinuv protokollari (Point-to-point): jarayonlar ro'yxatini saqlash, uzatishni tasdiqlash (ACK), xabarlarni buferlash, ...
• Axborot almashinuvining kollektiv operatsiyalari: algoritmlarning aloqa murakkabligi, hisoblash tizimining tuzilishini hisobga olish (torus, yog 'daraxt, ...), bloklanmaydigan kollektiv almashinuvlar (MPI 3.0, jamoaviy jadvalni saqlash usullari)
• Hisoblash tizimlari tuzilmalariga dastur grafiklarini joylashtirish algoritmlari (MPI topologiyasini xaritalash)
• MPI funktsiyalarini ko'p tarmoqli muhitda bajarish qobiliyati va tezlatgichlarni qo'llab-quvvatlash (GPU NVIDIA / AMD, Intel Xeon Phi) 4
MPI dastur osti
• Har bir protsessor dastur osti dasturini bajaradi:
ketma-ket C yoki Fortran dasturlash tilida yozilgan
• odatda har bir protsessor uchun bir xil (SPMD),
• pastki dasturlardagi o'zgaruvchilar bir xil nomga ega, ammo turli joylashuvlar turli xil ma'nolarga ega! bular. Barcha o'zgaruvchilar shaxsiydir.
• Maxsus qo'ng'iroqlarni yuborish va xabarlarni qabul qilish orqali o'zaro ishlash
MPI xabarlari
• Jarayonlar o'rtasidagi aloqaning asosiy usuli xabarlarni yuborishdir.
• Xabar - bu dasturlar o'rtasida uzatiladigan ma'lumotlar to'plami.
• Kerakli atributlar :
• jarayon raqami(sending process – receiving process)
• ma'lumotlar turlari(source data type – destination data type)
• ma'lumotlar hajmi(source data size – destination buffer size)
• Xabar identifikatori(0 … MPI_TAG_UP)
• Xabarning muhim atributlaridan biri uning identifikatori hisoblanadi. Identifikator bo'yicha jarayon unga kelgan xabarlarni bir xil jarayondan ajratib turadi.
• Xabar identifikatori 0 dan MPI_TAG_UP oralig‘idagi manfiy bo‘lmagan butun sondir
MPI asosiy funksiyalari
• MPI - bu xabarlarni uzatish mexanizmidan foydalangan holda parallel jarayonlarning o'zaro ishlashini ta'minlovchi funktsiyalar kutubxonasi.
• MPI - Bu juda katta va murakkab kutubxona bo'lib, 130 ga yaqin funktsiyalarni o'z ichiga oladi • Xabarlar MPI_Recv buyruq yordamida qabul qilinadi • MPI_Recv(Receiver, n*m, MPI_FLOAT, root, TagA, COMM, &status); • Receiver - ma'lumotlar buferini qabul qilish; • n*m – qabul qilingan elementlar soni; • MPI_FLOAT – qabul qilingan ma'lumotlar turi; • root – manba jarayoni raqami; • TagA – xabar yorlig'i; • COMM – jarayonning o'zaro ta'siri uchun kommunikator; • Status – xabar holati.
• MPI jarayonlarini ishga tushirish va yopish funktsiyalari;
• nuqtadan nuqtaga aloqa operatsiyalarini amalga oshiradigan funktsiyalar; • Kollektiv operatsiyalar funktsiyalari;
• jarayon guruhlari va kommunikatorlar bilan ishlash funktsiyalari;
• ma'lumotlar tuzilmalari bilan ishlash funktsiyalari;
• jarayonlar topologiyasini shakllantirish funktsiyalari. Asosiy funktsiyalari MPI
• Funktsiyalar kutubxonasi MPI
• #include • Ilova ishga tushirilmoqda MPI,
• MPI_Init (& argc, & argv) • Jarayonning darajasini (identifikatorini) olish • MPI_Comm_rank(MPI_COMM_WORLD, &rank);
• Aloqa hajmini (sonini) olish
• MPI_Comm_size(MPI_COMM_WORLD, &size);
• Xabarlarni yuborish va qabul qilish
• MPI_Send • MPI_Recv • MPI protsessoridan chiqish • MPI_Finalize(); • MPI parametrlari
• MPI_Comm_world -ma'lum bir MPI ilovasida ishlatiladigan barcha tugunlar to'plamini aniqlaydigan kommunikator • rank - MPI_Comm_world-dagi tugunni (jarayonni) aniqlaydigan daraja. Ishning taqsimlanishi rank qiymatiga asoslangan holda. • size - bu MPI_Comm_worlddagi jarayonlarning umumiy soni
Nuqtadan nuqtaga uzatish va qabul qilish
• Massiv yoki vektor qiymatlarini qayta ishlashni parallellashtirish uchun nuqqtadan nuqtaga operatsiyalar qabul qilinadi. Bunday holda, dastur jarayonlarining o'zaro ta'siri ikki jarayon o'rtasida sodir bo'ladi. • Birinchi jarayon bu- jo’natuvchi tomonidagi xabar • Yuborish jarayoni ma'lumotlarni uzatish protseduralaridan birini chaqiradi va ba'zi bir kommunikatorda qabul qilish jarayonining raqamini ko'rsatadi. • Ma'lumotlar massivini qabul qilish jarayoniga o'tkazish MPI_SEND.buyruq yordamida sinxron tarzda amalga oshiriladi. • Ikkinchi jarayon bu – qabul qiluvchi xabar • Qabul qilish jarayoni bir xil kommunikatorni ko'rsatgan holda ma'lumotlarni qabul qilish protseduralaridan birini chaqirishi kerak. • Ma'lumotlar massivini jo'natish jarayonidan qabul qilish MPI_RECV buyruq yordamida amalga oshiriladi Nuqtadan nuqtaga xabar almashish jarayoni • Xabar almashinuvi uzatish jarayoni va qabul qilish jarayoni o'rtasida sodir bo'ladi.
MPI Xabarni uzatish buyrug'ining formati
• Xabarlar MPI_SEND buyruq yordamida uzatiladi • MPI_Send(Sender, n*m, MPI_FLOAT, i, TagA, COMM); • Sender - ma'lumotlarni uzatish buferi; • n*m – uzatiladigan elementlar soni; • MPI_FLOAT – uzatiladigan ma'lumotlar turi; • i – tayinlash jarayoni raqami; • TagA – xabar yorlig'i; • COMM – jarayonning o'zaro ta'siri uchun kommunikator;
MPI Xabarlarni qabul qilish buyrug'ining formati • Xabarlar MPI_Recv buyruq yordamida qabul qilinadi • MPI_Recv(Receiver, n*m, MPI_FLOAT, root, TagA, COMM, &status); • Receiver - ma'lumotlar buferini qabul qilish; • n*m – qabul qilingan elementlar soni; • MPI_FLOAT – qabul qilingan ma'lumotlar turi; • root – manba jarayoni raqami; • TagA – xabar yorlig'i; • COMM – jarayonning o'zaro ta'siri uchun kommunikator; • Status – xabar holati. MPI Ma'lumotlarni tarqatish tartibi • Hisoblashlarni parallellashtirish uchun MPI dasturi jarayonlar sonini aniqlash uchun Kollektiv buyruq formati MPI_SCATTER • Ma'lumotlarni jarayonlar bo'yicha taqsimlash (Scatter). • MPI_Scatter(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, root, MPI_Comm comm) • Bu yerda: • Sendbuf - taqsimlangan ma'lumotlar bloklarini taqsimlash boshlanishining manzili; • Sendcount - har bir jarayonga yuborilgan narsalar soni; • Sendtype - yuborilgan elementlarning turi; • Recvbuf - qabul qilish buferining boshlanishi manzili; • Recvcount - olingan narsalar soni; • Recvtype - qabul qilingan tovarlar turi; • Root - jo'natish jarayonining raqami; • Comm jo'natish jarayonining raqami; Kollektiv buyruq formati MPI_GATHER • Jarayonlardan ma'lumotlarni yig'ish (to'plash) • MPI_Gather(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, int root, MPI_Comm comm) • Bu yerda: • sendbuf - yuborilgan ma'lumotlarni joylashtirish boshlanishining manzili; • sendcount - yuborilgan narsalar soni; • sendtype - yuborilgan elementlarning turi; • recvbuf - qabul qilish buferining boshlanishi manzili; • recvcount - har bir jarayondan olingan narsalar soni; • recvtype - olingan narsalar turi; • root - qabul qiluvchining jarayon raqami; • comm - kommunikator. MPI-da jarayonlarni sinxronlashtirish • Jarayonni sinxronlashtirish (to'siqlar) MPI – misol: “Hello world” • Dastur kodi #include #include int main(int argc, char* argv[]) { int rank, size; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); printf(“I am %d from %d\n”, rank, size); MPI_Finalize(); return 0; } natija MPI-da xabarlarni yuborish va qabul qilish misoli Пример кода программы #include int main(int argc, char* argv[]) { int rank, buf[256]; MPI_Status status; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); if(rank == 0) { // init buffer MPI_Send(buf, 256, MPI_INT, 1, 10, MPI_COMM_WORLD); } if(rank == 1) { MPI_Recv(buf, 256, MPI_INT, 0, 10, MPI_COMM_WORLD, &status); // process buffer } MPI_Finalize(); return 0; MPI_Comm_size atributidan foydalanadi. • Jarayonlar sonidan kelib chiqqan holda, ma'lumotlar massivi "bitta ma'lumotlar blokidan bitta protsessorga" tamoyili bo'yicha taqsimlanadi. • Har bir ma'lumotlarni tarqatish siklidan keyin ma'lumotlarni o'zgartirish jarayoni 4 protsessorda parallel ravishda amalga oshiriladi.
MPI - Ma'lumotlarni parallel qayta ishlash • Boshqarish dasturi har bir protsessorga ParallelHWT dasturining namunasini yuklaydi va alohida jarayonlarni yaratadi. • MPI dasturi protsessorlarda ishlaydigan jarayon raqamlarini aniqlash uchun MPI_Comm_rank atributidan foydalanadi. • Jarayon identifikatorlarini aniqlagandan so'ng, dastur parallel hisoblash uchun ma'lumotlarni jarayonlarga tarqatishni boshlaydi.
• 0-1024 oʻlchamdagi maʼlumotlar MPI_SEND va MPI_RECV protseduralari yordamida jarayonlarga yetkaziladi. • Bunda ma'lumotlarni tarqatish uchun o'lchami len = 256 bo'lgan dt [x] massividan foydalaniladi. Birinchi qayta ishlash siklida har bir protsessor quyidagi ma'lumotlarni oladi: • protsessor 1: dt [ 0:255 ] с len = 256. • protsessor 2: dt [256:511 ] с len = 256. • protsessor 3: dt [512:767 ] с len = 256. • protsessor 4: dt [768:1023] с len = 256. Xabarlarni jamoaviy uzatish va qabul qilish • Kollektiv aloqa MPI turlari : • «hamma hammaga» • «hamma bittaga» • «bitta hammaga» • Asosiy MPI Kollektiv aloqa buyruqlari • komanda MPI_BCAST • komanda MPI_REDUCE • komanda MPI_GATHER • komanda MPI_SCATTER Kollektiv buyruq formati MPI_BCAST • Aloqa turi: bitta hammaga • MPI_BCAST buyrug'i translyatsiya uchun ishlatiladigan jamoaviy buyruqlardan biridir. • C / C ++ da MPI_BCAST buyrug'idan foydalanish quyidagicha: • MPI_Bcast(&sendbuf, count, datatype, root, comm) • Bu yerda: • sendbuf: uzatish uchun buffer • count: buferdagi yozuvlar soni • datatype: MPI ma’lumot turi, (MPI_INTEGER) orqali yuboriladigan • root: host nomeri, • comm: MPI_COMM_WORLD kommunikatori ishlatiladi Данные Широковещатель ная передача Процессы Kollektiv buyruq formati MPI_REDUCE • Kommunikatsiya turi: hamma bittaga • MPI_REDUCE buyrug'i hisoblash jarayonlarida ma'lumotlarni qisqartirish yoki birlashtirish uchun ishlatiladi. • C / C ++ da MPI_REDUCE buyrug'idan foydalanish quyidagicha: • MPI_Reduce(&sendbuf, &recvbuf, count, datatype, op, root, comm) • Bu yerda: • sendbuf: uzatish uchun ma'lumotlar buferi - qisqartiriladigan ma'lumotlar • recvbuf:ma'lumotlar buferini qabul qilish, ma'lumotlar stenografiyasi • count: buferdagi yozuvlar soni • datatype: MPI yuborilgan ma'lumotlar turi • op: ma'lumotlarni kamaytirish uchun bajariladigan operatsiya turi(MPI_SUM, MPI_PROD, MPI_MAX, MPI_MIN и т.д.) • root: xost raqami ma'lumotlarini yuborish • comm: kommunikator ishlatiladi.
Kollektiv buyruq formati
MPI_SCATTER • Ma'lumotlarni jarayonlar bo'yicha taqsimlash (Scatter). • MPI_Scatter(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, root, MPI_Comm comm) • Bu yerda: • Sendbuf - taqsimlangan ma'lumotlar bloklarini taqsimlash boshlanishining manzili; • Sendcount - har bir jarayonga yuborilgan narsalar soni; • Sendtype - yuborilgan elementlarning turi; • Recvbuf - qabul qilish buferining boshlanishi manzili; • Recvcount - olingan narsalar soni; • Recvtype - qabul qilingan tovarlar turi; • Root - jo'natish jarayonining raqami; • Comm jo'natish jarayonining raqami;
Kollektiv buyruq formati MPI_GATHER • Jarayonlardan ma'lumotlarni yig'ish (to'plash) • MPI_Gather(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, int root, MPI_Comm comm) • Bu yerda: • sendbuf - yuborilgan ma'lumotlarni joylashtirish boshlanishining manzili; • sendcount - yuborilgan narsalar soni; • sendtype - yuborilgan elementlarning turi; • recvbuf - qabul qilish buferining boshlanishi manzili; • recvcount - har bir jarayondan olingan narsalar soni; • recvtype - olingan narsalar turi; • root - qabul qiluvchining jarayon raqami; • comm - kommunikator. MPI-da jarayonlarni sinxronlashtirish • Jarayonni sinxronlashtirish (to'siqlar) MPI – misol: “Hello world” • Dastur kodi #include #include int main(int argc, char* argv[]) { int rank, size; MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); printf(“I am %d from %d\n”, rank, size); MPI_Finalize(); return 0; } natija MPI-da xabarlarni yuborish va qabul qilish misoli Пример кода программы #include int main(int argc, char* argv[]) { int rank, buf[256]; MPI_Status status; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); if(rank == 0) { // init buffer MPI_Send(buf, 256, MPI_INT, 1, 10, MPI_COMM_WORLD); } if(rank == 1) { MPI_Recv(buf, 256, MPI_INT, 0, 10, MPI_COMM_WORLD, &status); // process buffer } MPI_Finalize(); return 0;

Xulosa.
Xulosa qilib aytadigan bo‘lsak, kompyuterning ichki qismlaridan eng muhimi xotira bo‘lib, kompyuter ishlashida uning axamiyati juda katta. Foydalanuvchi u orqali ma’lumotlarini saqlash, ochib o‘qish, Xulosa qilib aytadigan bo‘lsak, kompyuterning ichki qismlaridan eng muhimi xotira bo‘lib, kompyuter ishlashida uning axamiyati juda katta. Foydalanuvchi u orqali ma’lumotlarini saqlash, ochib o‘qish, va printer orqali qog‘ozga chop etishi mumkin. Inson xotirasi esa 4GB gacha ma’lumotlarni eslab qolish qobiliyatiga ega ekan, zamonaviy kompyuterlar xotirasi esa va printer orqali qog‘ozga chop etishi mumkin. Inson xotirasi esa 4GB gacha ma’lumotlarni eslab qolish qobiliyatiga ega ekan, zamonaviy kompyuterlar xotirasi esa bundan 2 barobar ko‘p.


Foydalanilgan adabiyotlar


―Multimediyali aloqa tarmoqlari‖ fanidan darslik. 5350100 - Telekommunikatsiya texnologiyalari (Telekommunikatsiya, Teleradioeshittirish, Mobil tizimlar) ta‘lim yo‗nalishi bo‗yicha bakalavriatura talabalari uchun. TI kafedrasi majlisida ko‗rib chiqildi va nashr etishga ruxsat etildi, 27.03.2018 yil 34-sonli bayonnoma TT fakulteti IUK majlisida ko‗rib chiqildi va nashr etishga ruxsat etildi, 03.04.2018 yil 8- sonli bayonnoma TATU ilmiy-uslubiy kengashi majlisida ko‗rib chiqildi va nashr etishga ruxsat etildi, 20.04.2018 yil 9 (110)- sonli bayonnoma Mualliflar: R.I. Isayev D.X. Ibatova Mas‘ul muharrir: A.M.Eshmuradov Musahhih: N.D ―Multimediyali aloqa tarmoqlari‖ fanidan darslik. 5350100 - Telekommunikatsiya texnologiyalari (Telekommunikatsiya, Teleradioeshittirish, Mobil tizimlar) ta‘lim yo‗nalishi bo‗yicha bakalavriatura talabalari uchun. TI kafedrasi majlisida ko‗rib chiqildi va nashr etishga ruxsat etildi, 27.03.2018 yil 34-sonli bayonnoma TT fakulteti IUK majlisida ko‗rib chiqildi va nashr etishga ruxsat etildi, 03.04.2018 yil 8- sonli bayonnoma TATU ilmiy-uslubiy kengashi majlisida ko‗rib chiqildi va nashr etishga ruxsat etildi, 20.04.2018 yil 9 (110)- sonli bayonnoma Mualliflar: R.I. Isayev D.X. Ibatova Mas‘ul muharrir: A.M.Eshmuradov Musahhih: N.D
Yüklə 23,68 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə