int MPI_Gather (void *sendbuf, int sendcount, MPI_Datatype sendtype, void* recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm) – guruhdagi barcha jarayonlar tomonidan yuborilgan ma‘lumotlar bloklarini root nomerli jarayonda bitta massivga yig‘adi. Bloklarning uzunligi bir xil deb hisoblanadi. Birlashtirish jo‘natish-jarayonlarini nomerlarini oshirish tartibida amalga oshiriladi. Ya’ni, i-jarayoni tomonidan uning sendbuf buferidan yuborilgan ma’lumotlar root jarayonining recvbuf buferining i-qismiga joylashtiriladi. Ma’lumotlar to‘planadigan massivning uzunligi uni joylashtirish uchun yetarli bo‘lishi kerak.
3. MPI_Init va MPI_Finalize funksiyalariga murojaatlarni dastur kodiga kiriting.
4. Har bir jarayonning nomerini rank o‘zgaruvchisiga yozing.
5. Dasturdagi parallel jarayonlarning umumiy sonini size o‘zgaruvchisiga yozing.
6. MPI_Bcast funksiyasidan foydalanib barcha jarayonlarga n parametrini uzatish.
7. MPI_Scatter funksiyasidan foydalanib, A matritsa satrlarini jarayonlar orasida teng taqsimlang.
8. MPI_Bcast funksiyasidan foydalanib barcha jarayonlarga B matritsasini uzating.
9. Har bir jarayon bo‘yicha C matritsasi satrini hisoblang.
10. MPI_Gather funksiyasidan foydalanib, nol jarayoniga barcha jarayonlardan C matritsasini hisoblash natijasini yig‘ing.
11. Ilovangizni kompilyatsiya qiling va ishga tushiring. Ma’lumotlar to‘g‘ri ekanligiga ishonch hosil qiling.
13-Topshiriq. Guruhlar va kommunikatorlar 1. MPI qo‘llab-quvvatlashi bilan Microsoft Visual Studio 2022 da mpi_scattergather loyihasini yarating (1-topshiriqqa qarang).
2. Parallel dastur jarayonlari guruhlarga birlashtiriladi. Guruh parallel dasturning barcha jarayonlarini yoki mavjud jarayonlarning faqat bir qismini o‘z ichiga olishi mumkin. Xuddi shu jarayon bir nechta guruhlarga tegishli bo‘lishi mumkin. Jarayon guruhlari ular asosida kommunikatorlarni yaratish uchun boshqariladi.
MPIda kommunikator ma’lumotlarni uzatish operatsiyalarini bajarishda foydalaniladigan jarayonlar guruhini va bir qator qo‘shimcha parametrlarni (kontekst) birlashtirgan maxsus yaratilgan xizmat ko‘rsatish obyekti sifatida tushuniladi.Guruhlar bilan ishlash uchun quyidagi asosiy MPI funksiyalarini bilib oling: