Academic Research in Educational Sciences Volume 4



Yüklə 132,29 Kb.
Pdf görüntüsü
səhifə5/15
tarix07.01.2024
ölçüsü132,29 Kb.
#201223
1   2   3   4   5   6   7   8   9   ...   15
dasturning-siklik-bolimlarini-optimallashtirish (1)

 
Loop 
Transformations 
(
Sikl 
transformatsiyasi
)
.
 
Loop(Sikl) 
transformatsiyalari dasturlarda sikllarni optimallashtirish uchun ishlatiladi.Loop 
transformatsiyalari uchun ko‟plab algoritmlar mavjud. 
1. 
Loop(Sikl)ni ochish
(loop unrolling). Kerakli takrorlashlar sonini 
kamaytirish uchun halqa tanasini takrorlaydi va shu bilan halqani boshqarish yukini 
kamaytiradi. 
Loop optimization uchun 1-metod 
loop unrolling

def 
loop_unrolling_optimization
(loop_body, unroll_factor): 
unrolled_loop_body = [ ] 
for i in range(0, len(loop_body), unroll_factor): 
unrolled_loop_body.extend(loop_body[i:i+unroll_factor]) 
return unrolled_loop_body 


Academic Research in Educational Sciences 
Volume 4 | Issue 5 | 2023 
ISSN: 2181-1385 
ISI: 0,967 | Cite-Factor: 0,89 | SIS: 1,9 | ASI: 1,3 | SJIF: 5,771 | UIF: 6,1 
sa 
 
 
 
 
516
 
May, 2023 
https://t.me/ares_uz Multidisciplinary Scientific Journal 
Kod ikkita parametrni qabul qiluvchi “loop_unrolling_optimization” 
funksiyasini belgilaydi: “loop_body” va “unroll_factor”. Ushbu funktsiyaning 
maqsadi ma'lum bir sikl tanasida siklni ochishni optimallashtirishni amalga 
oshirishdir. 
Funktsiya ichida “unrolled_loop_body” deb nomlangan bo'sh ro'yxat yaratiladi. 
Keyin, “unroll_factor” qadam o'lchami bilan “loop_body” indekslarini takrorlash 
uchun for sikli ishlatiladi. Bu shuni anglatadiki, sikl bir vaqtning o'zida 
“unroll_factor” elementlarini qayta ishlaydi. Loopning har bir iteratsiyasida kod 
“loop_body” bo'lagini “unrolled_loop_body” ro'yxatiga qo'shadi. Bo'lim joriy 
indeksdan i dan “i + unroll_factor” ga olinadi, “unroll_factor” elementlarini 
“loop_body” dan samarali ajratib oladi. 
Nihoyat, funksiya optimallashtirish qo'llanilgandan so'ng sikl tanasini o'z 
ichiga olgan “unrolled_loop_body” ro'yxatini qaytaradi. 
Loop transformatsiyalari qo'shimcha xarajatlarni kamaytirish va xotiraga kirish 
usullarini yaxshilash orqali dasturlarning ishlashini yaxshilashi mumkin. [1] 
2. 
Loop Fusion 
(Skilni birlashtirish). Keshdan(Komputer xotirasida saqlanib 
qolgan narsalar) foydalanishni yaxshilash va qo'shimcha xarajatlarni kamaytirish 
uchun o'xshash operatsiyalarni bajaradigan bir nechta sikllarni bitta siklga 
birlashtiradi. Kod ikkita parametrni qabul qiluvchi “loop_fusion_optimization” 
funksiyasini belgilaydi: “loop1_body” va “loop2_body”. Ushbu funktsiyaning 
maqsadi ikkita berilgan sikl tanasida sikl sintezini optimallashtirishni amalga 
oshirishdir.Funktsiya ichida + operatori yordamida “loop1_body” va “loop2_body” ni 
birlashtirish orqali “fused_loop_body” deb nomlangan yangi ro'yxat yaratiladi. Bu 
operatsiya ikkala halqa tanasining elementlarini bitta ro'yxatda birlashtiradi. 
Va nihoyat, funktsiya optimallashtirish qo'llanilgandan so'ng birlashtirilgan sikl 
tanasini ifodalovchi “fused_loop_body” ni qaytaradi. [6] 
3. 

Yüklə 132,29 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   ...   15




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin