Parallel dasturlash


-misol. C tilida critical direktivasi



Download 0,6 Mb.
bet58/77
Sana07.07.2022
Hajmi0,6 Mb.
#754293
1   ...   54   55   56   57   58   59   60   61   ...   77
Bog'liq
Parallel dasturlash (1)

3-misol. C tilida critical direktivasi


#include
#include
int main(int argc, char *argv[])
{
int n;
#pragma omp parallel
{
#pragma omp critical
{
n=omp_get_thread_num();
printf("Oqim %d\n", n);
}
}
}

Agar critical koʻrsatma 3-misolda koʻrsatilmagan boʻlsa, dastur natijasi oldindan aytib boʻlmaydigan boʻlar edi. critical direktiva bilan natijalarni chiqarish tartibi mustaqil ravishda boʻlishi mumkin, lekin u har doim 0 dan omp_num_threads-1 gacha boʻlgan bir xil raqamlar toʻplami boʻladi. Albatta, shunga oʻxshash natijaga boshqa yoʻllar bilan ham erishish mumkin edi, masalan, n oʻzgaruvchisini lokal deb e’lon qilish orqali, bunda bir oqim bu oʻzgaruvchining nusxasi bilan ishlaydi. Biroq, bu fragmentlarning ishlashida sezilarli farq mavjud.


Agar kritik boʻlim mavjud boʻlsa, u holda bir vaqtning oʻzida faqat bitta oqim fragmentni qayta ishlaydi. Qolgan oqimlar dasturda allaqachon bu nuqtaga kelgan boʻlsalar ham va ishlashga tayyor boʻlsalar ham, oʻz navbatlarini kutishadi. Agar kritik boʻlim boʻlmasa, u holda barcha oqimlar bir vaqtning oʻzida ushbu kod qismini bajarishi mumkin. Bir tomondan, kritik boʻlimlar umumiy oʻzgaruvchilar bilan ishlash uchun qulay mexanizmni ta’minlaydi. Ammo boshqa tomondan, uni ehtiyotkorlik bilan ishlatish kerak, chunki kritik boʻlimlar parallel dasturga ketma-ket kod qismlarini qoʻshadi, bu uning samaradorligini pasaytirishi mumkin.
Atomic direktivasi. Amalda kritik boʻlimlardan umumiy foydalanish umumiy oʻzgaruvchilarni yangilashdir. Misol uchun, agar sum oʻzgaruvchisi umumiy boʻlsa va sum=sum+expr koʻrinishdagi operator parallel dastur sohasida boʻlsa, u holda bu operator bir vaqtning oʻzida bir nechta oqimlar tomonidan bajarilsa, false natija olinishi mumkin. Bunday vaziyatga yoʻl qoʻymaslik uchun siz kritik qism mexanizmidan yoki bunday holatlar uchun maxsus taqdim etilgan atomic direktivasidan foydalanishingiz mumkin.



Download 0,6 Mb.

Do'stlaringiz bilan baham:
1   ...   54   55   56   57   58   59   60   61   ...   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