Topshiriq № Mavzu: mpi paketi yordamida misollar yechish Ishdan maqsad


-Topshiriq. “Nuqta-nuqta” kommunikatsiyalar: “usta-ishchi” sxemasi



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

6-Topshiriq. “Nuqta-nuqta” kommunikatsiyalar: “usta-ishchi” sxemasi
1. MPI qo‘llab-quvvatlashi bilan Microsoft Visual Studio 2022 da mpi_masterslave loyihasini yarating (1-topshiriqqa qarang).
2. MPI_Init va MPI_Finalize funksiyalariga murojaatni dastur kodiga kiriting.
3. Har bir jarayonning nomerini rank o‘zgaruvchisiga yozing.
4. Dasturdagi parallel jarayonlar umumiy sonini size o‘zgaruvchisiga yozing.
5. Butun sonli o‘zgaruvchi bufni e’lon qilish orqali xabar yarating.
6. If operatoridan foydalanib, dasturda kodning ikkita qismini tanlang: master-jarayon va boshqa jarayonlar uchun:
if (rank == 0) {
// master-jarayon tomonidan bajariladigan kod
}
else {
// slave-jarayonlar tomonidan bajariladigan kod
}
7. slave-jarayonlar bo‘limida buf o‘zgaruvchisiga jarayon nomerining qiymatini ta’minlang. bufni master-jarayonga yuboring.
8. master-jarayon uchun bo‘limda for operatoridan foydalanib, 1 dan size-1 gacha o‘zgaradigan src hisoblagichi bilan sikl yarating. Sikl tanasida MPI_Recv funksiyasidan foydalanib, src nomerli jarayondan xabarni oling. Qabul qilingan xabarni printf yordamida ekranga chop eting.
9. Ilovangizni kompilyatsiya qiling va ishga tushiring. To‘g‘ri natija ekranda chop qilinganligiga ishonch hosil qiling.
7-topshiriq. “nuqta-nuqta” aloqalar: oddiy bloklanmagan almashinuvlar
1. MPI qo‘llab-quvvatlashi bilan Microsoft Visual Studio 2022 da mpi_isend loyihasini yarating (1-topshiriqqa qarang).
2. MPI kutubxonasidan bloklanmagan xabarlarni uzatishning asosiy funksiyalari bilan tanishing:
int MPI_Isend (void *buf, int count, MPI_Datatype datatype, int dest, int msgtag, MPI_Comm comm, MPI_Request *requesr) – MPI_Send kabi xabarni uzatish, ammo qismiy dasturdan qaytish buf buferida joylashgan butun xabarni qayta ishlashni kutmasdan uzatish jarayoni initsializatsiya qilgandan so‘ng darhol sodir bo'ladi. Bu shuni anglatadiki, ma’lum bir jo‘natishning tugallanganligi haqida qo‘shimcha ma’lumot olmasdan, berilgan buferdan boshqa maqsadlarda qayta foydalanish mumkin emas. Uzatish jarayonining tugashini (ya’ni uzatilgan xabarni buzishdan qo‘rqmasdan buf buferidan qayta foydalanish mumkin bo‘lgan moment) request parametri va MPI_Wait va MPI_Test protseduralari yordamida aniqlash mumkin.

Yüklə 261,33 Kb.

Dostları ilə paylaş:
1   ...   8   9   10   11   12   13   14   15   ...   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