Topshiriq № Mavzu: mpi paketi yordamida misollar yechish Ishdan maqsad


int MPI_Recv(void* buf, int count, MPI_Datatype datatype, int source, int msgtag, MPI_Comm comm, MPI_Status *status)



Yüklə 261,33 Kb.
səhifə10/21
tarix07.01.2024
ölçüsü261,33 Kb.
#208656
1   ...   6   7   8   9   10   11   12   13   ...   21
amaliy7

int MPI_Recv(void* buf, int count, MPI_Datatype datatype, int source, int msgtag, MPI_Comm comm, MPI_Status *status) – blokirovkali source jarayonidan msgteg identifikator bilan xabarni qabul qilish. Qabul qilingan xabardagi elementlar soni count qiymatidan oshmasligi kerak. Agar qabul qilingan elementlar soni count qiymatidan kam bo‘lsa, buf buferida faqat qabul qilingan xabarning elementlariga mos keladigan elementlarga o‘zgarishi kafolatlanadi. Agar siz xabardagi elementlarning aniq sonini bilishingiz kerak bo‘lsa, MPI_Probe qismiy dasturidan foydalanishingiz mumkin.
Bloklash qismiy dasturdan qaytgandan so‘ng xabarning barcha elementlarini qabul qilinishini va buf buferida joylashganligini ta’minlaydi.
Yuborish-jarayonining nomeri sifatida qayta aniqlangan o‘zgarmas MPI_ANY_SOURCE ni ko‘rsatishingiz mumkin – bu har qanday jarayondan kelgan xabarga mos kelishining belgisidir. Qabul qilingan xabarning identifikatori sifatida MPI_ANY_TAG o‘zgarmasni ko‘rsatishingiz mumkin – bu har qanday identifikatorli xabarga mos kelishining belgisidir.
Agar jarayon boshqa jarayonga ikkita xabar yuborsa va ikkala xabar ham bir xil MPI_Recv murojaatiga mos kelsa, u holda birinchi yuborilgan xabar oldin qabul qilinadi.
3. MPI_Init va MPI_Finalize funksiyalariga murojaatni dastur kodiga kiriting.
4. buf o‘zgaruvchisini e’lon qilish orqali (masalan, int buf) xabarni yarating. 0 jarayoni orqali ushbu o‘zgaruvchiga ba’zi qiymatlarni ta’minlang.
5. MPI_Send funksiyasidan foydalanib, buf o‘zgaruvchining qiymatini 0-jarayondan 1-jarayonga yuboring. Funksiya parametrlarida butun son tipidagi o‘zgaruvchini (masalan, int) yuborish uchun MPI_Datatype-da MPI_INT turini belgilang; belgilar turi (char) o‘zgaruvchisi uchun – MPI_CHAR; haqiqiy turlari uchun (float, double) - MPI_FLOAT, MPI_DOUBLE. Ma’lumotlar massivini uzatishda count parametrida bitta elementning turi va massivdagi elementlar soni ko'rsatiladi.
6. MPI_Recv funksiyasidan foydalanib, 1-jarayonda 0-jarayondan yuborilgan xabarni oling. Qabul qilingan qiymatni printf yordamida ekranga chop eting.
7. Ilovangizni kompilyatsiya qiling va ishga tushiring. To‘g‘ri natija ekranda chop qilinganligiga ishonch hosil qiling.

Yüklə 261,33 Kb.

Dostları ilə paylaş:
1   ...   6   7   8   9   10   11   12   13   ...   21




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

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin