Parallel dasturlash


bash> export OMP_SCHEDULE=static,1000 bash> export OMP_SCHEDULE=dynamic



Download 0,6 Mb.
bet45/77
Sana07.07.2022
Hajmi0,6 Mb.
#754293
1   ...   41   42   43   44   45   46   47   48   ...   77
Bog'liq
Parallel dasturlash (1)

bash> export OMP_SCHEDULE=static,1000 bash> export OMP_SCHEDULE=dynamic
ordered sharti

12.3. OpenMP muhiti oʻzgaruvchilari


OMP_NUM_THREADS
Parallel blokdagi potoklar sonini oʻrnatadi. Odatiy boʻlib, tarmoqlar soni virtual protsessorlar soniga teng.
OMP_SCHEDULE
Ishning taqsimlanish turini runtime turiga parallel sikllarga oʻrnatadi.
OMP_DYNAMIC
Hisoblash uchun ishlatiladigan potoklar sonining dinamik oʻzgarishini yoqadi yoki oʻchiradi (tizim yuklanishiga qarab). Standart dasturga bogʻliq.
OMP_NESTED
Ichki parallelliklarni yoqadi yoki oʻchiradi (joylashtirilgan sikldan parallellashtirish). Jimlik boʻyicha oʻchirilgan.
Takrorlash uchun savol va topshiriqlar:

  1. Ijro shartlariga nimalar kiradi?

  2. private sharti va uning parametrlari

  3. firstprivate va lastprivate shartlari

  4. Ish taqsimoti uchun OpenMP konstruksiyalari

  5. Parallel boʻlimlar

13-ma’ruza. OpenMP. Parallel va ketma-ket sohalar

13.1. Parallel va ketma-ket sohalar


Dastur ishga tushirilganda yagona oqim-master yoki "asosiy" oqim paydo boʻladi, bu dasturni birinchi operatordan boshlaydi. Asosiy oqim va faqat u barcha ketma-ket dastur sohalarini bajaradi. Parallel sohaga kirganda, qoʻshimcha oqimlar paydo boʻladi.
parallel direktivasi. Parallel soha parallel direktiva yordamida aniqlanadi (parallel ... end parallel).

С dasturlash tilida:


#pragma omp parallel [opsiya[[,]opsiya]...]

Opsiyalar oʻrnida quyidagilar ishlatilishi mumkin:


• if (shart) - shart boʻyicha parallel hududning bajarilishi. Parallel hududga kirish faqat ma’lum bir shart bajarilganda amalga oshiriladi. Agar shart bajarilmasa, direktiva ishlamaydi va dastur avvalgi rejimda ishlashni davom ettiradi;


num_threads (butun ifoda) - parallel hududni bajaradigan oqimlar sonini aniq belgilash; sukut boʻyicha, omp_set_num_threads() funksiyasi bilan oʻrnatilgan oxirgi qiymat yoki OMP_NUM_THREADS oʻzgaruvchining qiymati tanlanadi;


default(private|firstprivate|shared|none)- sinfi aniq belgilanmagan parallel hududdagi barcha oʻzgaruvchilarga mos ravishda private, firstprivate yoki shared klasslari belgilanadi; none parallel hududdagi barcha oʻzgaruvchilarga aniq sinf tayinlanishi kerakligini bildiradi; C dasturlash tilida faqat shared yoki none variantlari ishlatiladi;


private(roʻyxat) - har bir oqimda mahalliy nusxalari hosil qilinadigan oʻzgaruvchilar roʻyxatini belgilaydi; roʻyxatdagi mahalliy oʻzgaruvchilar nusxalarining boshlangʻich qiymati aniqlanmagan;

firstprivate (roʻyxat) - har bir oqimda mahalliy nusxa hosil qilinadigan oʻzgaruvchilar roʻyxatini belgilaydi; oʻzgaruvchilarning mahalliy nusxalari ushbu oʻzgaruvchilarning qiymatlari bilan asosiy ipda ishga tushiriladi;


shared (roʻyxat) - barcha oqimlar uchun umumiy oʻzgaruvchilar roʻyxatini belgilaydi;
copyin (roʻyxat) - threadprivate deb e’lon qilingan oʻzgaruvchilar roʻyxatini belgilaydi, ular parallel hududga kirishda oqim-masterda mos keladigan oʻzgaruvchilar qiymatlari bilan initsializatsiya qilinadi;
reduction(operator:roʻyxat) - operator va umumiy oʻzgaruvchilar roʻyxatini belgilaydi; har bir oqimda har bir oʻzgaruvchi uchun mahalliy nusxalar yaratiladi; mahalliy nusxalar operator turiga mos ravishda inisializatsiya qilinadi (additiv operatsiyalar uchun - 0 yoki uning analoglari, multiplikativ operatsiyalar uchun - 1 yoki uning analoglari); koʻrsatilgan operator parallel hududning barcha operatorlari bajarilgandan soʻng oʻzgaruvchilarning mahalliy nusxalari ustida bajariladi; operator: C tili uchun - +, *, -,&, |, ^, &&, ||; operatorlarni bajarish tartibi aniqlanmagan, shuning uchun natija har ishga tushirishda farq qilishi mumkin.
Parallel sohaga kirishda yangi OMP_NUM_THREADS-1 oqimlar paydo boʻladi, har bir oqim oʻzining noyob raqamini oladi va asosiy oqim 0 raqamini oladi va guruhning asosiy oqimiga ("master") aylanadi. Qolgan oqimlar 1 dan OMP_NUM_THREADS-1 gacha butun sonlarni raqam sifatida qabul qiladi. Berilgan parallel sohani bajaruvchi oqimlar soni ular sohadan chiqmaguncha oʻzgarishsiz qoladi. Parallel sohani tark etganda, yashirin sinxronizatsiya amalga oshiriladi va asosiydan tashqari barcha oqimlar yoʻq qilinadi.
Barcha ochilgan oqimlar parallel sohaga mos keladigan bir xil kodni bajaradi. SMP tizimida oqimlar turli protsessorlar boʻylab taqsimlanadi deb taxmin qilinadi (ammo bu odatda operatsion tizimning boshqaruvida boʻladi).
1-misol parallel direktivasining ishlatilishini koʻrsatadi. Bu kodni bajarish natijasida asosiy oqim "Ketma-ket maydon 1" matnini chop etadi, keyin parallel direktivasi boʻyicha yangi oqimlar paydo boʻladi, ularning har biri "Parallel maydon" matnini chop etadi, soʻngra ochilgan oqimlar tugatiladi va asosiy oqim-master "Ketma-ket maydon 2" matnini chop etadi.
1-misol. С tilida parallel soha bilan ishlash.



Download 0,6 Mb.

Do'stlaringiz bilan baham:
1   ...   41   42   43   44   45   46   47   48   ...   77




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish