KOMPYUTER TADQIQOTLARI VA MODELLASHTIRISH
Algoritmlar va dasturlarni parallelizatsiyalashga kirish
271
Qabul qilish 5. Kirish o'zgaruvchilari
Kodning keyingi qismi bo'sh.
j = 0
do i = 1, u
j = j + k
a[i] = j
enddo
Bu erda barcha yinelemeler orasida haqiqiy qaramlik mavjud
j. Yaqindan qarab,
buni sof matematika nuqtai nazaridan ko'rishingiz mumkin
n-th iteratsiya qiymati j
= k
· n. Shunday qilib
nima yozish mumkin (bu nuqtai nazardan) :
do i = 1, u
j = k * i
a[i] = j
enddo
Parallel tsiklni olamiz. Lekin bu xavfli operatsiya. Biz algoritning sonini o'zgartiramiz-
ma. Ushbu usulni juda ehtiyotkorlik bilan ishlatish kerak. O'zgaruvchan
ushbu misolda j
indüksiyon o'zgaruvchisidir. Umuman olganda, induktsiya o'zgaruvchilari deb ataladi, ularning qiymatlari
n-yinelemeler faqat iteratsiya raqamidan va, ehtimol,
ko'chadan tashqarida tayinlangan ba'zi bir boshlang'ich qiymatdan bir xususiyatdir.
Qabul qilish 6. Kamaytirish operatsiyalari
Misol keltiring.
j = 0
do i = 1, u
j = j + a[i]
enddo
Operatorning barcha "reenkarnasyonlari" orasida
skalar o'zgaruvchisi bilan haqiqiy bog'liqlik mavjud. Nazariyaga ko'ra, parallelizatsiya mumkin emas. Ammo qo'shimcha operatsiya (yana
nazariy) - bu qisqarish operatsiyasi. Biz qator 8-mi
elementlar sonini hisoblash kerak bo'lsa, u sdelattak mumkin.
Hisoblashparnye miqdori
a
12
= a[1] + a[2], . . . , a
78
= a[7] + a [8] to'rtta protsessorda,
keyin miqdori
a
1234
= a
12
+ a
34
,
a
5678
= a
56
+ a
78
— ikki protsessorda va undan keyin —
yakuniy miqdor. Bu jarayon izchil hisoblash bilan solishtirganda g'alaba beradi,
lekin algoritm grafigi o'zgartiradi. Uni juda ehtiyotkorlik bilan ishlatish kerak. Bunday usul
barcha assotsiativ operatsiyalarda qo'llanilishi mumkin.
Qisqacha aytganda, dasturlarni parallelizatsiyalashga to'sqinlik qiladigan tsikllardagi bog'liqliklarga qarshi kurashish uchun barcha asosiy usullar
.
Xulosa
Biz amalga oshirishga imkon beradigan bir qator yondashuvlarni ko'rib
chiqdik ajralmaslikning turli darajalarida algoritmlarni shakllantirish. Afsuski, mening hikoyamdan tashqarida qolganmavjud
, dirijyorlik va ekran so'rovlari. Dirijyorlik va xaritalash-
mazmuni amaliy mashg'ulotlar bilan uzviy bog'liq bo'lgan bosqichlar va ular bo'lishi mumkin
emas etarlicha nazariy kursda aks ettirilgan. Biroq, ijrochilar o'rtasida kichik vazifalarni taqsimlash
shubhasiz nazariy qiziqishdir. O'ylaymanki, kelajakda
bu bosqichga e'tibor qaratishim mumkin.
Agar siz ushbu matnni oxirigacha o'qib chiqsangiz, e'tiboringiz uchun katta rahmat. Umid qilamanki
bu sizga bir oz foyda keltirdi va vaqtni behuda o'tkazmadingiz.
Do'stlaringiz bilan baham: |