Blokirovkalangan xabarlarni jo'natish va qabul qilish MPI da ma'lumotlarni asinxron almashish uchun bir qator protseduralar mavjud. Blokirovkalovchi protseduralardan farqli ravishda bunday protseduralardan qaytish chaqirilgan keyin xech bir jarayonni ishi to'xtatilmasdan darrov amalga oshadi. Dastur bajarilishi davomida asinxron ishga tushirilgan amallar yuz beradi va qayta ishlanadi. Amalda, bu imkoniyat effektiv dasturlar tuzishda juda foydali hisoblanadi. Aslida, dasturchi biror holatda unga boshqa jarayonda hisoblanayotgan massiv kerak bo'lishini biladi. Dasturchi oldindan joriy massivni olish uchun dasturda asinxron so'rov joylaydi. Massiv xaqiqatda zarur bo'lishiga qadar u boshqa bir foydali maqsadlarda qo'llanilib turadi. Bu yerda xam ko'pchilik holatlarda xabarni jo'natib bo'linishini kutmasdan navbatdagi hisoblashlarni bajarish mumkin. Asinxron xabar almashishni tugatish uchun xabar almashish amali tugaganligini yoki davom etayotganligini tekshiruvchi qo'shimcha protsedura zarur bo'ladi. Faqat shundan keyingina almashinayotgan xabarni buzilishiga xavfsiramasdan jo'natish buferidan foydalanish mumkin. Agar xabarlarni uzatish qabul qilish amallarini hisoblashlar fonida yashirin imkoniyati mavjud bo'lsa, undan foydalanish kerak. Biroq amaliyot doimo nazariya bilan mos kelavermaydi. Bu konkret haqiqiylikka bog'liq. Afsuski, asinxron amallar apparatura va sistema tomonidan effektiv qo'llab-quvvatlanmaydi. Shuning uchun fonda hisoblashlarni bajarish effekti nolga teng yoki unchalik katta bo'lmasa xayron bo'lmaslik kerak. Keltirilgan eslatmalar effektivlik bilan bog'liq. Shunday bo'lsada asinxron amallar funksionalligi bo'yicha juda foydali hisoblanadi va shuning uchun asinxron amallar xar bir haqiqiy dasturda mavjud. MPIISEND(BUF,COUNT,DATATYPE,DEST,MSGTAG,COMM, REQUEST,IERR) BUF(*) INTEGER COUNT,DATATYPE,DEST,MSGTAG,COMM,REQUEST,IERR BUF buferidan blokirovkalamasdan COMM kommunikatoridagi DEST jarayoniga MSGTAG identifikatorli DATATYPE toifasi xabarning COUNT elementlarini jo'natish. Bu protseduradan qaytish uzatish jarayoni yaratilgandan keyin, BUF buferidagi to'la xabar qayta ishlanib bo'linmasidan darxol amalga oshadi. Yani bu holat joriy buferdan jo'natish ishlari tugatilganligini tasdiqlovchi qo'shimcha ma'lumotlarni olmasdan foydalanish mumkin emasligini bildiradi. BUF buferidan undagi uzatilayotgan xabarni buzilish xataridan xoli ravishda qayta foydalanish momentini qaytaruvchi REQUEST parametri yordamida MPIWAIT hamda MPITEST toifali protseduralar yordamida aniqlash mumkin. REQUEST parametri Fotran tilida INTEGER toifaga ega va malum blokirovkalanmagan amalni identifikattsiyalash uchun qo'llaniladi. MPISEND protsedurasini uchta modifikattsiyasiga mos uchta qo'shimcha MPIISEND protsedura mavjud. Bular quyidagilar: MPIIBSEND buferdagi xabarni blokirovkalamasdan jo'natish; MPIISSEND xabarlarni sinxronli blokirovkalamasdan jo'natish; MPIIRSEND tayorligi bo'yicha blokirovkalamasdan xabar jo'natish; MPIIRECV(BUF,COUNT,DATATYPE,SOURCE,MSGTAG, COMM,REQUEST,IERR) buf(*) INTEGER COUNT ,DATATYPE,SOURCE,MSGTAG,COMM,REQUEST,IERR STATUS massivini to'ldirgan holda COMM kommunikatoridagi SOURCE nomerli jarayondan MSGTAG identifikatorli DATATYPE toifali xabarni COUNT dan ko'p bo'lmagan elementlarini blokirovkalamasdan BUF buferiga qabul qilish. Blokirovkalab qabul qilishdan farqli ravishda protseduradan qaytish qabul jarayoni yuzaga kelish bilan va to'la xabar qabul qilinishi, hamda u BUF buferidan yozilmasdan darrov amalga oshadi. Qabul jarayoni tugaganligi REQUEST parmetri, hamda MPIWAIT va MPITEST oilasidagi protseduralari yordamida aniqlanadi. MPISEND, MPIISEND protseduralarini ixtiyoriy biridan, ularning uchta modifikattsiyasini ...

Joylangan
05 Jun 2024 | 16:10:12
Bo'lim
Informatika va AT
Fayl formati
zip → doc
Fayl hajmi
29.37 KB
Ko'rishlar soni
85 marta
Ko'chirishlar soni
5 marta
Virus yo'q.
VirusTotal da tekshirish
O'zgartirgan san'a:
29.03.2025 | 00:18
Arxiv ichida: doc
Joylangan
05 Jun 2024 [ 16:10 ]
Bo'lim
Informatika va AT
Fayl formati
zip → doc
Fayl hajmi
29.37 KB
Ko'rishlar soni
85 marta
Ko'chirishlar soni
5 marta
Virus yo'q.
VirusTotal da tekshirish
O'zgartirish kiritilgan:
29.03.2025 [ 00:18 ]
Arxiv ichida: doc