Topshiriq № Mavzu: mpi paketi yordamida misollar yechish Ishdan maqsad


int MPI_Win_create (void *base, MPI_Aint size, int disp_unit, MPI_Info info, MPI_Comm comm, MPI_Win *win)



Yüklə 261,33 Kb.
səhifə20/21
tarix07.01.2024
ölçüsü261,33 Kb.
#208656
1   ...   13   14   15   16   17   18   19   20   21
amaliy7

int MPI_Win_create (void *base, MPI_Aint size, int disp_unit, MPI_Info info, MPI_Comm comm, MPI_Win *win) – RMA operatsiyalarini bajarish uchun ushbu jarayonlar tomonidan ishlatilishi mumkin bo‘lgan oyna obyektini qaytaradi. Har bir jarayon mavjud xotiradagi oynani belgilaydi, u comm o‘zaro munosabat kommumikatsion guruhidagi jarayonlarga masofaviy kirish uchun foydalanishga imkon beradi. Oyna base manzildan boshlanadigan size baytlardan iborat. Jarayon hech qanday xotirani tavsiflamasligi mumkin va bunda size = 0. Manzilli arifmetikasini soddalashtirish uchun RMA operatsiyalari siljish birligini belgilaydigan argumentni taqdim etadi: maqsadli jarayon uchun RMA operatsiyasida ofset argumentining qiymati oyna yaratilganda maqsad tomonidan belgilangan disp_unit omili bilan o‘lchanadi.
int MPI_Win_free (MPI_Win *win) – oyna obyektini bo‘shatadi va MPI_WIN_NULL qiymati bilan bo‘sh deskriptorni qaytaradi.
Oyna bilan ishlash funksiyalari kollektivtirdirlar!
3. MPI_Win_create funksiyasidan foydalanib, bir tomonlama aloqaga ruxsat berish uchun “oyna” yarating.
4. Bir tomonlama aloqaning asosiy funksiyalarini bilan tanishing:
int MPI_Put (void *origin_addr, int orign_count, MPI_Datatype origin_datatype, int target_rank, MPI_Aint target_disp, int target_count, MPI_datatype target_datatype, MPI_Win win) – boshlang‘ich tugundagi origin_addr manzilidan boshlab, win va target_rank juftligi tomonidan belgilangan maqsad tuguniga kelib chiqqan holda, origin_datatype tomonidan belgilangan turdagi origin_count ketma-ket yozuvlarini uzatadi . Ma'lumotlar maqsadli buferga maqsad _addr = oyna _ bazasi + maqsad _ disp * disp _ birligida yoziladi , bu erda oyna _ tayanch va disp_birlik oynaning asosiy manzili va ofset birligi bo'lib, oyna ob'ekti tomonidan ishga tushirilganda aniqlanadi . qabul qiluvchi jarayoni. Belgilangan bufer target_count va target_datatype argumentlari bilan aniqlanadi.
int MPI_Get (void *origin_addr, int orign_count, MPI_Datatype origin_datatype, int target_rank, MPI_Aint target_disp, int target_count, MPI_Datatype target_datatype, MPI_Win win) – MPI_Get MPI_Put ga o'xshaydi , faqat ma'lumotlarni uzatish teskari yo'nalishda sodir bo'ladi . Ma'lumotlar maqsadli xotiradan tashabbuskor xotirasiga ko'chiriladi. Origin_datatype original buferdagi bir-biriga mos keladigan yozuvlarni aniqlay olmaydi. Belgilangan bufer belgilangan oyna ichida bo'lishi kerak va ko'chirilgan ma'lumotlar maqsadli buferga yaxlitlashsiz mos kelishi kerak.
5. N parametrini barcha jarayonlarga o‘tkazish uchun bir tomonlama aloqa funksiyalaridan foydalaning.
6. Har bir jarayon bo‘yicha hisob-kitoblarni bajaring.
7. Bir tomonlama aloqa funksiyalaridan foydalangan holda natijani nol jarayonda to‘plang.
8. Ilovangizni kompilyatsiya qiling va ishga tushiring. Ma’lumotlar to‘g‘ri ekanligiga ishonch hosil qiling.

Yüklə 261,33 Kb.

Dostları ilə paylaş:
1   ...   13   14   15   16   17   18   19   20   21




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin