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


Download 69.67 Kb.
bet1/5
Sana09.11.2023
Hajmi69.67 Kb.
#1760337
  1   2   3   4   5
Bog'liq
5-mavzu

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 ↓

Download 69.67 Kb.

Do'stlaringiz bilan baham:
  1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling