Amaliy mashg‘ulot №10.
OpenMP paket imkoniyatlari.
OpenMPda parallel dasturlar sohasidagi o'zgaruvchilar ikkita asosiy sinfga
bo'linadi:
SHARED (birgalikda; A nomi ostida, barcha tarmoqlar
bitta o'zgaruvchini ko'radi) va
XUSUSIY (xususiy; A nomi ostida har bir ip o'z
o'zgaruvchisini ko'radi).
Alohida qoidalar parallel mintaqaga yoki parallel ko'chadan kirishda va
chiqishda o'zgaruvchilarning xatti -harakatlarini belgilaydi: REDUCTION,
FIRSTPRIVATE, LASTPRIVATE, COPYIN.
Odatiy bo'lib, barcha UMON bloklari, shuningdek parallel maydon tashqarisida
hosil qilingan o'zgaruvchilar, bu maydonga kirganda SHARED bo'lib qoladi. Istisno -
bu o'zgaruvchilar - aniq sabablarga ko'ra takroriy hisoblagichlar. Parallel doirada
yaratilgan o'zgaruvchilar XUSUSIY. Siz
DEFAULT
bandini ishlatib, standart
o'zgaruvchilar sinfini aniq belgilashingiz mumkin .
SHARED Umumiy
bo'lish kerak bo'lgan o'zgaruvchilar uchun qo'llaniladi.
XUSUSIY
Xususiy bo'lishi kerak bo'lgan o'zgaruvchilarga nisbatan qo'llaniladi. Parallel
mintaqaga kirganda, har bir ip uchun o'zgaruvchining alohida misoli yaratiladi, u
parallel mintaqadan tashqaridagi asl o'zgaruvchiga aloqasi yo'q.
THREADPRIVATE
xususiy bo'lishi kerak bo'lgan umumiy bloklarga qo'llaniladi. Direktiv har bir
COMMON blokli deklaratsiyasidan keyin qo'llanilishi kerak.
FIRSTPRIVATE
Parallel hududga kirganda o'zgaruvchining shaxsiy nusxalari asl o'zgaruvchining
qiymati bilan boshlanadi.
LASTPRIVATE
Parallel tsikl yoki parallel bo'limlar blokining oxirida, loopning oxirgi takrorlanishini
yoki blokning oxirgi qismini bajargan ip asl o'zgaruvchining qiymatini yangilaydi.
REDUCTION ( +: A )
pastadir operatsiyalari bajariladigan o'zgaruvchini belgilaydi (masalan,
yig'ish). Loopdan chiqishda, bu operatsiya barcha oqimlardagi o'zgaruvchining
nusxalarida bajariladi va natija asl o'zgaruvchiga beriladi.
Dostları ilə paylaş: |