Academic Research in Educational Sciences Volume 4


Academic Research in Educational Sciences



Yüklə 132,29 Kb.
Pdf görüntüsü
səhifə12/15
tarix07.01.2024
ölçüsü132,29 Kb.
#201223
1   ...   7   8   9   10   11   12   13   14   15
dasturning-siklik-bolimlarini-optimallashtirish (1)

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 
 
 
 
 
522
 
May, 2023 
https://t.me/ares_uz Multidisciplinary Scientific Journal 
tiled_loop_body.extend(tile_statements) 
tiled_loop_body.extend(loop_body[num_tiles*tile_size:]) 
return tiled_loop_body [loop_tile] 
10.
Loop Strip-Mining
. Yuqori xarajatlarni kamaytirish va keshdan 
foydalanishni yaxshilash uchun halqani kichikroq bo'laklarga ajratadi. 
Bu yerda Loop Strip-Mining uchun umumiy algoritm(kod) keltirilgan. Ushbu kodda 
“strip_mine_loop” funksiyasi ikkita parametrni oladi: original sikl tanasini 
ifodalovchi “loop_body” va har bir strip o'lchamini belgilaydigan “strip_size”. 
Funktsiyaning ichida striplar soni (chiziqlar soni) sikl_tanasi uzunligini 
“strip_size”ga bo'lish yo'li bilan hisoblanadi. Bu hosil bo'lishi mumkin bo'lgan to'liq 
chiziqlar sonini aniqlaydi. “stripped_loop_body” deb nomlangan yangi ro'yxat strip 
mining bilan yangi sikl tanasini saqlash uchun yaratilgan. 
Loop 0 dan “num_strips” oralig'ida takrorlanadi. Har bir strip uchun 
boshlang'ich va tugatish indekslari “strip_size” asosida aniqlanadi. Joriy strippga mos 
keladigan statementlar slicing yordamida “loop_body” dan chiqariladi. 
“Strip_loop” deb nomlangan satr o'zgaruvchisi chiziqli halqa tanasini qurish 
uchun yaratilgan. U tarmoqli indeksi (j_strip_idx) uchun strip o'lchami bo'ylab 
takrorlanadigan for loop statementi bilan boshlanadi. Keyin stripdagi har bir 
statement ichkariga kiritiladi va satrlarni birlashtirish va birlashtirish operatsiyasidan 
foydalangan holda “strip_loop” qatoriga qo'shiladi. 
Olingan chiziqli halqa tanasini ifodalovchi „strip_loop‟ satri „stripped_loop_body‟ ga 
qo'shiladi. 
Sikldan so'ng, to'liq strip hosil qila olmagan qolgan barcha statementlar 
“stripped_loop_body” ga qo'shiladi. 
Nihoyat, funktsiya strip mining optimallashtirish qo'llanilgandan keyin halqa tanasini 
ifodalovchi “stripped_loop_body” ni qaytaradi. 
def strip_mine_loop(loop_body, strip_size): 
# Kerakli bo‟laklar sonini aniqlash 
num_strips = len(loop_body) // strip_size 
# Strip bilan yangi sikl tanasini yaratish 
stripped_loop_body = [ ] 
for strip_idx in range(num_strips): 
# Avvalgi strip uchun bosh va oxiri idexni aniqlash 
start_idx = strip_idx * strip_size 
end_idx = (strip_idx + 1) * strip_size 
strip_statements = loop_body[start_idx:end_idx] 
strip_loop = f"for j_{strip_idx} in range({strip_size}):\n" 



Yüklə 132,29 Kb.

Dostları ilə paylaş:
1   ...   7   8   9   10   11   12   13   14   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