Academic Research in Educational Sciences Volume 4


Academic Research in Educational Sciences



Yüklə 132,29 Kb.
Pdf görüntüsü
səhifə10/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 
 
 
 
 
520
 
May, 2023 
https://t.me/ares_uz Multidisciplinary Scientific Journal 
yangi statementni qaytarish uchun kerakli amalni amalga oshirishi kerak. 
[strength_reduction] [6] 
8. 
(Loop Vectorization) 
Loop vektorizatsiyasi. Zamonaviy protsessorlarda 
mavjud bo'lgan parallelizmdan foydalanish uchun bir vaqtning o'zida siklning bir 
nechta iteratsiyasini qayta ishlash uchun vektor ko'rsatmalaridan foydalanadi. 
Bu yerda Loop Vectorization metodi uchun umumiy metod(kod) ko‟rsatilgan 
import numpy as np 
def
vectorize_loop(loop_body, vector_size): 
n = len(loop_body) 
# Vektorlashtirishdan keyin qancha iteratsiya qolishini aniqlang 
remainder = n % vector_size 
# Vektorizatsiya bilan mos keladigan yangi sikl tanasini yaratish 
new_loop_body = loop_body[: n - remainder] 
# Vektorlashtirilgan halqa tanasini yarating 
for i in range(0, n - remainder, vector_size): 
# Loop tanasining bir bo'lagini ajratib oling 
slice_body = loop_body[i: i + vector_size] 
# Bo'lakni vektor operatsiyasiga aylantirish 
vector_op = np.array(slice_body) 
# Yangi sikl tanasiga vektor operatsiyasini qo'shing 
new_loop_body.append(vector_op) 
# Qolgan statementlarni yangi sikl tanasiga qo'shing 
new_loop_body.extend(loop_body[n – remainder :]) 
return new_loop_body 
Ushbu kodda “vektorize_loop” funksiyasi ikkita parametrni oladi: original sikl 
tanasini ifodalovchi “loop_body” va vektorlashtirilgan bo'laklarning o'lchamini 
belgilaydigan “vector_size”. 
Funktsiya ichida “loop_body” uzunligi hisoblab chiqiladi va n o'zgaruvchisida 
saqlanadi. Qolgan o'zgaruvchi vektorizatsiyadan keyin qolgan iteratsiyalar sonini 
aniqlash uchun ishlatiladi. 
“new_loop_body” deb nomlangan yangi ro'yxat original “loop_body”ni n - 
qoldig'igacha bo'lish orqali yaratiladi. Bu yangi sikl tanasi vektorizatsiya bilan mos 
kelishini ta'minlaydi. 
Keyin sikl 0 dan n gacha - qoldiq oralig'ida “vektor_size” qadam o'lchami bilan 
takrorlanadi. Har bir iteratsiyada vektor operatsiyasi sifatida qayta 
ishlanishi kerak bo'lgan elementlarning bir qismini ifodalovchi 
“loop_body” bo'limi chiqariladi. 



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