• MPI_Sendrecv_replace
  • Jarayonlar oʻrtasida jamoaviy (kollektiv) xabar almashish.
  • MPI_Sendrecv_replace funksiyasi




    Download 435,82 Kb.
    bet18/18
    Sana07.02.2024
    Hajmi435,82 Kb.
    #152842
    1   ...   10   11   12   13   14   15   16   17   18
    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.
    1   ...   10   11   12   13   14   15   16   17   18




    Download 435,82 Kb.