G‘afarov, A. F. Galimyanov parallel hisobiyotlar qo'llanma Qozon


Download 1.46 Mb.
bet72/85
Sana24.12.2022
Hajmi1.46 Mb.
#1062519
1   ...   68   69   70   71   72   73   74   75   ...   85
Bog'liq
ParVychGafGal (1)

#pragma omp parallel
{
myid = omp_get_thread_num(); agar (myid == 0)


biror narsa qilmoq();


boshqa


boshqa_bir narsa qilish(myid);
}
Yuqoridagi misol quyidagi kamchilikka ega. Biz bilmaymiz
myid o'zgaruvchisi umumiy yoki shaxsiy bo'ladimi.
Parallel bajarish doirasi C/C++ da quyidagicha tasvirlangan

yo'l:
#pragma omp parallel \


umumiy (var1, var2, ....) \
121
Machine Translated by Google
xususiy (var1, var2, ...) \


firstprivate (var1, var2, ...) \
qisqartirish (onepatop: var1, var2, ...)


agar (ifoda) \


sukut bo'yicha (birgalikda|yo'q)


{


qurilish bloki


}

Ikki ijro modeli mavjud: dinamik, qachon miqdori


dasturda ishlatiladigan iplar bir sohada farq qilishi mumkin boshqasiga parallel bajarish, va statik qachon iplar soni belgilangan.


Amalga oshirish modeli yoki muhit o'zgaruvchisi orqali boshqariladi


OPM_DYNAMIC yoki omp_set_dynamic() funksiyasini chaqirish orqali.
8.4. OpenMP konstruktsiyalari


Amalga oshirish shartlari. Amalga oshirish shartlari qandayligini belgilaydi kodning parallel qismini va o'zgaruvchilar doirasini bajarish
kodning ushbu bo'limi ichida. Biz quyidagi shartlarni tavsiflaymiz:


umumiy (var1, var2, )


Umumiy shart barcha ro'yxatga olingan o'zgaruvchilarni ko'rsatadi
mavzular o'rtasida taqsimlanadi. Barcha mavzular bir xil va ga kirish huquqiga ega bo'ladi
bir xil xotira maydoni.


xususiy (var1, var2, ...)


Xususiy band har bir ipning o'ziga xos bo'lishi kerakligini ko'rsatadi o'zgaruvchining butun bajarilishi davomida nusxasi.
firstprivate(var1, var2, ...)

Bu holat xususiy holatga o'xshaydi , bundan tashqari ko'rsatilgan o'zgaruvchilar parallel qismga kirishda ishga tushiriladi


Parallel bo'limga kirishdan oldin o'zgaruvchiga ega bo'lgan qiymatga ega kod.
122
Machine Translated by Google
lastprivate (var1, var2, ...)
Xususiy o'zgaruvchilar ular olgan qiymatni saqlaydi

kodning parallel qismining oxiriga yetganda.




qisqartirish (onepatop: var1, var2, ...)
Ushbu shart qisqartirish operatsiyalarining xavfsiz bajarilishini kafolatlaydi, masalan, global summani hisoblash.
agar (ifoda)
Bu shart parallel bajarish zarurligini aytadi

faqat ifoda to'g'ri bo'lsa.




standart (birgalikda|maxfiy|yo'q)
Bu shart ichidagi o'zgaruvchilar doirasini belgilaydi

sukut bo'yicha kodning parallel qismi.




jadval (turi[,chank])
Bu holat tsiklning takrorlanishi qanday taqsimlanishini nazorat qiladi

iplar orasida.





Download 1.46 Mb.

Do'stlaringiz bilan baham:
1   ...   68   69   70   71   72   73   74   75   ...   85




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling