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


) Qabul qiluvchi vazifa kutilgan xabarning uzunligini oldindan bilmasa. Foydalanuvchi buferi dinamik xotirada ishga tushiriladi


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

1) Qabul qiluvchi vazifa kutilgan xabarning uzunligini oldindan bilmasa. Foydalanuvchi buferi dinamik xotirada ishga tushiriladi:

  • 1) Qabul qiluvchi vazifa kutilgan xabarning uzunligini oldindan bilmasa. Foydalanuvchi buferi dinamik xotirada ishga tushiriladi:
  • MPI_Probe( MPI_ANY_SOURCE, int msgtag, MPI_COMM_WORLD, &status );
  • MPI_Get_count( &status, MPI_INT, &bufElems );
  • buf = malloc( sizeof(int) * bufElems );
  • MPI_Recv( buf, bufElems, MPI_INT, MPI_ANY_SOURCE, int msgtag, MPI_COMM_WORLD, &status );
  • /* MPI_Recv faqat tizim buferidagi ma'lumotlarni foydalanuvchi buferiga ko’chiradi*/
  • Buning o'rniga, albatta, siz shunchaki qabul qiluvchi tomonda mumkin bo'lgan eng uzun xabarlarni joylashtirish uchun katta bo'lgan buferga ega bo'lishingiz mumkin, ammo agar xabarlar uzunligi juda keng farq qilishi mumkin bo'lsa, bu uslub maqbul emas.

2) Qabul qiluvchining vazifasi har xil turdagi va turli jo'natuvchilardan xabarlarni to'plaganida. MPI_Probesiz, foydalanuvchi buferiga xabarlarni olish tartibi kompilyatsiya vaqtida o'rnatilishi kerak:

  • 2) Qabul qiluvchining vazifasi har xil turdagi va turli jo'natuvchilardan xabarlarni to'plaganida. MPI_Probesiz, foydalanuvchi buferiga xabarlarni olish tartibi kompilyatsiya vaqtida o'rnatilishi kerak:
  • MPI_Recv( floatBuf, floatBufSize, MPI_FLOAT, MPI_ANY_SOURCE, tagFloatData, ... );
  • MPI_Recv( intBuf,intBufSize,MPI_INT,MPI_ANY_SOURCE, tagIntData,... );
  • MPI_Recv( charBuf,charBufSize,MPI_CHAR,MPI_ANY_SOURCE, tagCharData,... );
  • Endi, agar bajarilish vaqtida tagCharData identifikatorli xabar qolgan ikkitasidan oldin kelsa, MPI MPI_Recv ga birinchi ikkita qo'ng'iroqlar davomida uni “mahkamlashga" majbur bo'ladi. Bu xotira yukiga to'la. MPI_Probe sizga xabarlarni foydalanuvchi buferiga olish tartibini ular qabul qiluvchi tomonga etib borish tartibiga qarab o’rnatishga imkon beradi, buni kompilyatsiya paytida emas, balki to'g'ridan-to'g'ri bajarish vaqtida amalga oshiradi:

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