Mpi any source, mpi any tag mpi get Count, mpi probe,mpi wtime. Xabarni qabul qilish



Yüklə 74,45 Kb.
səhifə1/5
tarix25.12.2022
ölçüsü74,45 Kb.
#121810
  1   2   3   4   5
4- amaliy ish

MPI_ANY_SOURCE, MPI_ANY_TAG MPI_Get_Count, MPI_Probe,MPI_Wtime.

Xabarni qabul qilish

  • int MPI_Recv(void* buf, int count, MPI_Datatype datatype, int source, int msgtag, MPI_Comm comm, MPI_Status*status)
  • OUT buf – xabarni qabul qiluvchi bufer manzili;
  • count - qabul qilingan xabardagi elementlarning maksimal soni;
  • datatype- qabul qilingan xabar elementlarining turi;
  • source - jo'natuvchi jarayonning raqami;
  • msgtag - qabul qilingan xabarning identifikatori;
  • OUT status – qabul qilingan xabar parametrlari.
  • Blokirovkalash pastki dastur qaytgandan so'ng xabarning barcha elementlari qabul qilinishini va bufer bufiga joylashtirilishini ta'minlaydi.
  • Yuboruvchi jarayonning raqami sifatida siz oldindan belgilangan doimiy MPI_ANY_SOURCE ni ishlatishingiz mumkin - bu holda xabar istalgan raqamli jarayondan qabul qilinadi. Qabul qilingan xabarning identifikatori(tag) sifatida siz MPI_ANY_TAG konstantasini belgilashingiz mumkin - bu holda istalgan identifikatordagi xabar qabul qilinadi.
  • Agar jarayon boshqa jarayonga ikkita xabar yuborsa va ikkala xabar ham bir xil MPI_Recv chaqiruviga mos kelsa, birinchi yuborilgan xabar avval qabul qilinadi.

Xabar statusi

  • Qabul qilingan xabarning atributlarini status massivining elementlaridan aniqlash mumkin.
  • status parametri - MPI_SOURSE (haqiqiy xabar darajasi), MPI_TAG (haqiqiy teg) va MPI_ERROR (xato kodi) maydonlari bilan oldindan belgilangan MPI_Status turidagi strukturadir.
  • Qabul qilish jarayonining raqami aniq ko'rsatilishi kerak.
  • Agar bitta jarayon bitta MPI_Recv ga mos keladigan ikkita xabarni boshqa jarayonga yuborsa, birinchi xabar birinchi bo'lib qabul qilinadi.Agar xabar turli jarayonlar tomonidan yuborilgan bo'lsa, unda qabul qilish tartibi aniqlanmagan.

Bir tomondan, biz MPI_Recv ga xabar kutilayotgan vazifaning raqamini va uning identifikatorini ko’rsatamiz; va boshqa tomondan, biz ularni status strukturasida MPI dan olamizmi? Buning sababi, MPI_Recv joker argumentlar bilan chaqirilishi mumkin ("har qanday narsani/har kimdan qabul qilish") va bunday ma'lumotlarni qabul qilishdan so'ng, dastur status tuzilmasidan MPI_SOURCE va MPI_TAG maydonlarini o'qish orqali haqiqiy raqam/identifikatorni o'rganadi.

  • Bir tomondan, biz MPI_Recv ga xabar kutilayotgan vazifaning raqamini va uning identifikatorini ko’rsatamiz; va boshqa tomondan, biz ularni status strukturasida MPI dan olamizmi? Buning sababi, MPI_Recv joker argumentlar bilan chaqirilishi mumkin ("har qanday narsani/har kimdan qabul qilish") va bunday ma'lumotlarni qabul qilishdan so'ng, dastur status tuzilmasidan MPI_SOURCE va MPI_TAG maydonlarini o'qish orqali haqiqiy raqam/identifikatorni o'rganadi.
  • MPI_ERROR maydoni odatda tekshirilishi shart emas - MPI tomonidan o'rnatilgan standart xato ishlov beruvchisi muvaffaqiyatsizlikka uchragan taqdirda MPI_Recv dan qaytishdan oldin dasturning bajarilishini to'xtatadi. Shunday qilib, MPI_Recv dan qaytgandan so'ng, status.MPI_ERROR maydoni faqat 0 ga teng bo'lishi mumkin (MPI_SUCCESS);
  • MPI_Status turida kiruvchi xabarning haqiqiy uzunligini yozib oladigan maydon mavjud emas. Uzunlikni shunday topish mumkin ↓

Yüklə 74,45 Kb.

Dostları ilə paylaş:
  1   2   3   4   5




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

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin