|
MPI_Sendrecv_replace funksiyasi
|
bet | 18/18 | Sana | 07.02.2024 | Hajmi | 435,82 Kb. | | #152842 |
Bog'liq Mustaqil ishi Xakimov Allamurod (3)MPI_Sendrecv_replace funksiyasi
MPI_Sendrecv funksiyasi yuborish va qabul qilish operatsiyalarini birlashtiradi. Ikkala operatsiya ham bir xil kommunikatordan foydalanadi, ammo xabar identifikatorlari farq qilishi mumkin. Yuborilgan ma'lumotlarni qabul qilingan ma'lumotlar bilan almashtirish bilan bir xil turdagi ma'lumotlarni almashish zarur bo'lgan hollarda, MPI_Sendrecv_replace funksiyasidan foydalanish qulay.
MPI_Sendrecv_replace funksiyasi jo’natilayotgan ma’lumotlar uchun ham qabul qilinayotgan ma’lumotlar uchun ham bitta xotira buferidan foydalaniladi.
int MPI_Sendrecv_replace (_Inout_ void *buf, int count, MPI_Datatype datatype, int dest, int sendtag, int source, int recvtag, MPI_Comm comm, _Out_ MPI_Status *status );
Buf
Jo’natiluvchi va qabul qilinuvchi ma’lumot uchun xotira manzili.
count
Elementlar soni
datatype
Xabar almashinuvidagi ma’lumotlar soni.
Dest
Xabarni qabul qiluvchi jarayon manzili.
sendtag
Jo’natiluvchi xabar identifikatori.
source
Xabar jo’natuvchi jarayon raqami.
recvtag
qabul qilinuvchi xabar identifikatori.
Comm
Kommunikator nomi.
status [out]
Qabul qilinayotgan xabar haqidagi ma’lumotlarni saqlovchi tuzilma.
Agar xabar uzatish va qabul qilish muvofaqqiyatli amalga oshirilsa , funksiya MPI_SUCCESS (0 qiymat) qaytaradi aks holda xatolik kodini.
#include
#include
#include
using namespace std;
int main(int argc,char**argv){
string send;
int rank ;
MPI_Init(&argc,&argv);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
if (rank==5){
send = "w";
MPI_Sendrecv_replace(&send,1,MPI_CHAR,7,12,7,13,MPI_COMM_WORLD,MPI_STATUS_IGNORE);
cout<<"jarayon_raqam : "<MPI_Sendrecv_replace(&send,1,MPI_CHAR,5,13,5,12,MPI_COMM_WORLD,MPI_STATUS_IGNORE);
cout<<"jarayon_raqam : "<Download 435,82 Kb. |
| |