Topshiriq № Mavzu: mpi paketi yordamida misollar yechish Ishdan maqsad


-topshiriq. Kollektiv aloqalar: ma’lumotlarni keng qamrovli uzatish



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

10-topshiriq. Kollektiv aloqalar: ma’lumotlarni keng qamrovli uzatish
1. MPI qo‘llab-quvvatlashi bilan Microsoft Visual Studio 2022 da mpi_bcast loyihasini yarating (1-topshiriqqa qarang).
2. MPI_Bcast ma'lumotlarni uzatish funksiyasini tekshiring :
int MPI_Bcast (void *bufer, int count, MPI_ Datatype datatype, int root, MPI_Comm comm) – root nomerli jarayon o‘zining uzatish buferidan comm kommunikatorning barcha jarayonlariga xabar yuboradi; count – yuborilgan elementlar soni; datatype – yuboriladigan elementlarning turi.

3. MPI_Init va MPI_Finalize funksiyalariga murojaatlarni dastur kodiga kiriting.
4. Har bir jarayonning nomerini rank o‘zgaruvchisiga yozing.
5. Dasturdagi parallel jarayonlar umumiy sonini size o‘zgaruvchisiga yozing.
6. buf o‘zgaruvchisi uzunligini 100 ta elementdan iborat char massivi sifatida e’lon qiling.
7. 0-jarayonda buf o‘zgaruvchisiga n sonini va n uzunlikdagi satrni kiriting.
8. Har bir jarayonda n sonini uzatish uchun MPI_Bcast funksiyasini chaqiring, root sifatida nol jarayonni, count sifatida – 1, datatype sifatida n o‘zgaruvchining ma’lumotlar turini ko‘rsating.
9. Har bir jarayonda satrni uzatish uchun MPI_Bcast funksiyasini chaqiring, root sifatida nol jarayonini, count sifatida - n sonini, datatype sifatida MPI_CHAR ma’lumotlar turini ko‘rsating.
10. Satrdan ingliz alifbosining qaysi harflarini qaysi jarayon izlashini aniqlang. Har bir jarayon barcha harflari orqali takrorlanadigan for siklini yozing. Masalan, quyidagicha:
char a = 'a'; // Ingliz alifbosining birinchi harfi (kichik harf)
for (i=rank; i<26; i=i+size) {
// Belgiga ASCII kodi orqali murojaat qilish mumkin:
// (int)a + i
}
11. Keyin ushbu sikl ichiga n uzunlikdagi kirish ketma-ketligining barcha belgilarini ketma-ket takrorlaydigan boshqa sikl yozing va ularni (char)((int)a + i) belgisi bilan solishtiring. Agar mos keladigan bo‘lsa, har bir harf uchun takrorlanish hisoblagichi bittaga oshirilishi kerak.
12. Barcha jarayonlar uchun printf yordamida harf hisoblagich qiymatlarini ekranga chop eting.
13. Ilovangizni kompilyatsiya qiling va ishga tushiring. Ma’lumotlar to‘g‘ri ekanligiga ishonch hosil qiling.

Yüklə 261,33 Kb.

Dostları ilə paylaş:
1   ...   11   12   13   14   15   16   17   18   ...   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