• MPI_SOURCE
  • MPI_recv() yoki MPI_Wait()
  • MPI_recv(), MPI_Wait()
  • Sharov rashiov nomidagi samarqand davlat




    Download 435,82 Kb.
    bet4/18
    Sana07.02.2024
    Hajmi435,82 Kb.
    #152842
    1   2   3   4   5   6   7   8   9   ...   18
    Bog'liq
    Mustaqil ishi Xakimov Allamurod (3)

    MPI_status strukturasi
    MPI_status struktura MPI kutubxonasida foydalaniladigan ma'lumotlar to'plamini saqlash uchun ishlatiladi. Ushbu struktura ma'lumot almashish operatsiyalari natijasida olinadigan ma'lumotlarni saqlab turadi.

    • 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.

    • 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
    MPI_status strukturasining ma'lumotlarni saqlab turish uchun kerakli maydonlar quyidagilardir:
    MPI_SOURCE: Bu maydon ma'lumotni yuborgan protsessning identifikatori (rank) ni saqlaydi.
    MPI_TAG: Ushbu maydon almashish operatsiyasi orqali olinayotgan ma'lumotlarni turi (tag) ni saqlaydi.
    MPI_ERROR: Ushbu maydon almashish operatsiyasi natijasida yuzaga kelgan xatolarni saqlaydi.
    MPI_status strukturasining foydalanishida MPI kutubxonasi tomonidan o'rnatilgan almashish operatsiyasi tugagandan so'ng, MPI_Status tipidagi obyekt yaratiladi va ushbu obyektning ma'lumotlari MPI_recv() yoki MPI_Wait() kabi funktsiyalarga o'tkaziladi. MPI_Status obyekti dastur tomonidan o'zida saqlangan ma'lumotlarni o'qish, aniqlash va saqlash uchun foydalaniladi.
    MPI kutubxonasida MPI_Status strukturasining ma'lumotlari to'g'ridan-to'g'ri o'zgartirib bo'lmaydi. Ular faqat MPI_recv(), MPI_Wait() va hokazo funktsiyalari ishlatilganda yangilanadi. Boshqacha bir ifoda bilan aytganda, MPI_Status strukturasining ma'lumotlari, MPI kutubxonasi tomonidan so'rovga javob sifatida olinadigan ma'lumotlarni saqlab turadigan o'zgartirilmaydigan obyekt hisoblanadi.
    MPI_status strukturasining foydalanilishi dastur tomonidan almashish operatsiyalari natijasida yuborilgan ma'lumotlarni aniqlash, qarshilik qilish va boshqa qo'llanmalarni amalga oshirishda juda kerakli bo'ladi.

    Download 435,82 Kb.
    1   2   3   4   5   6   7   8   9   ...   18




    Download 435,82 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Sharov rashiov nomidagi samarqand davlat

    Download 435,82 Kb.