G‘afarov, A. F. Galimyanov parallel hisobiyotlar qo'llanma Qozon


Download 1.46 Mb.
bet62/85
Sana24.12.2022
Hajmi1.46 Mb.
#1062519
1   ...   58   59   60   61   62   63   64   65   ...   85
Bog'liq
ParVychGafGal (1)

partner_rank = (jahon_darajasi + 1) % 2;


esa (ping_pong_soni < PING_PONG_LIMIT) {


agar (jahon_darajasi == ping_pong_hisobi % 2) {


ping_pong_count++;


MPI_Yuborish(&ping_pong_hisobi, 1, MPI_INT, hamkor_darajasi, 0,


MPI_COMM_WORLD);


printf("%d yuborildi va ping_pong_soni %d dan %dgacha oshirildi\n",
Machine Translated by Google
dunyo_darajasi, ping_pong_hisoblash, sherik_darajasi);


}


boshqa {


MPI_Recv(&ping_pong_count, 1, MPI_INT, partner_rank, 0,
MPI_COMM_WORLD,
MPI_STATUS_IGNORE);
printf("%d ping_pong_count %d ni %d dan qabul qildi\n",


dunyo_darajasi, ping_pong_hisoblash, sherik_darajasi);


}


}


MPI_Finalize();


}

Ushbu misol faqat ikkita jarayonda ishlash uchun mo'ljallangan,


agar siz ko'proq yoki kamroq jarayonlar sonini ko'rsatgan bo'lsangiz, u holda dastur




MPI_Abort usulini chaqirish orqali tugatiladi . O'zgaruvchan ping_pong_count

nolga tenglashtiriladi va stol tennisining har bir bosqichida oshiriladi


topshirish jarayoni orqali. Ping_pong_count qiymati sifatida


ortadi, jarayonlar o'z navbatida jo'natuvchiga aylanadi va


oluvchi. Nihoyat, chegaraga erishgandan so'ng, jarayonlar to'xtatiladi


yuborish va qabul qilish.





    1. MPIda jamoaviy aloqalar

Yuqorida biz nuqtadan nuqtaga aloqalarni ko'rib chiqdik, bu


ikki jarayon o‘rtasidagi bog‘liqlikni ifodalaydi. Ushbu bo'limda biz ko'rib chiqamiz




jamoaviy aloqalar. Kollektiv muloqot - bu usul



aloqa,
qaysi
o'z ichiga oladi
barcha jarayonlarda ishtirok etish
ichida

kommunikator. Kollektiv haqida eslash kerak bo'lgan narsalardan biri


aloqa, u bir nuqtani nazarda tutadi


jarayonlar o'rtasidagi sinxronizatsiya . Bu shuni anglatadiki, barcha jarayonlar kerak

qaytadan boshlashdan oldin ularning kodlaridagi bir nuqtaga erishing


101

Machine Translated by Google
ishlash. MPI uchun maxsus funktsiya mavjud

jarayonni sinxronlashtirish:




MPI_Barrier (MPI_Comm kommunikatori)


Funktsiya nomi juda tavsiflovchi - funktsiya to'siq hosil qiladi va yo'q kommunikatordagi jarayonlar hammasi bo'lmaguncha to'siqdan o'ta olmaydi funksiyani chaqiradi. Mana, undan foydalanishning illyustratsiyasi funktsiyalari. Rasmda gorizontal o'q bajarilishini ifodalaydi
dasturlar va doiralar turli jarayonlarni ifodalaydi:


MPI_Barrier ko'p narsalar uchun foydali bo'lishi mumkin. Asosiylaridan biri MPI_Barrier ilovalari dasturlarni sinxronlashtirishdir, shuning uchun qismlar parallel kodni o'z vaqtida sinxronlash mumkin.

Download 1.46 Mb.

Do'stlaringiz bilan baham:
1   ...   58   59   60   61   62   63   64   65   ...   85




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling