Yuqori unumli gibrid hisoblash tizimlarida suyuqliklar dinamikasi muammolarini hal qilish uchun Fortran dvmh tilidan foydalanish


Fortan DVMH-dagi Jacobi dasturiga misol


Download 85.82 Kb.
bet7/12
Sana18.06.2023
Hajmi85.82 Kb.
#1597348
1   2   3   4   5   6   7   8   9   ...   12
Bog'liq
02.06.2023.Использование языка Fortran DVMH для решения задач гидродинамики на высокопроизводительных гибридных вычислительных системах.ru.uz

1.4. Fortan DVMH-dagi Jacobi dasturiga misol
Keling, Fortan DVMH tilining imkoniyatlarini Jacobi algoritmi uchun dastur misolida ko'rsatamiz (rasmga qarang).
Direktiv natijasida
!DVM$ TARQATISH (BLOK, BLOK) :: A
A massivi kalkulyatorlar orasida taqsimlanadi. Amaldagi kalkulyatorlarning soni va turi dastur muhit o'zgaruvchilari va buyruq qatori parametrlari yordamida ishga tushirilganda o'rnatiladi.
Direktiv
!DVM$ B(I,J) NI A(I,J) BILAN TIQLASH
ikkita A va B massivlarning birgalikda taqsimlanishini belgilaydi. B massivning elementlari A massivning mos elementlari joylashtiriladigan bir xil kalkulyatorga taqsimlanadi.
Direktiv
!DVM$ PARALLEL (J,I) ON A(I,J)
hisob-kitoblarning taqsimlanishini belgilaydi. A massivning tegishli elementlari taqsimlangan kalkulyatorda siklning takrorlanishi bajariladi.
REDUCTION (MAX(EPS)) bandi qisqartirish operatsiyasining samarali bajarilishini tashkil qiladi - turli kompyuterlarda joylashgan ma'lumotlar bilan global operatsiya (maksimal qiymatni topish).
SHADOW_RENEW (A) bandi tsiklni bajarishdan oldin boshqa kompyuterlardan masofaviy ma'lumotlarni (soya yuzlari) almashtirish zarurligini bildiradi.
REGION direktivalarida qo'shimcha bandlar belgilanmaganligi sababli, kompilyator avtomatik ravishda o'zgaruvchilardan foydalanish yo'nalishlarini aniqlaydi -INOUT(A,B,EPS) .
Birinchi hisoblash hududi (boshlash davri) bajarilganda, A va B massivlarining taqsimlangan qismlari uchun tezlatgichlarda kerakli beshlik ajratiladi.
Ikkinchi hisoblash hududiga (iterativ siklda) kirishda kalkulyatorda A va B massivlar uchun haqiqiy vakillar mavjudligi tekshiriladi. Bunday vakillar allaqachon mavjud bo'lganligi sababli, haqiqiy ma'lumotlarni kalkulyatorlarga nusxalash bo'yicha qo'shimcha operatsiyalar bajarilmaydi.
Hisoblash hududini tark etganda, xost xotirasidagi ma'lumotlar yangilanmaydi. B massivni faylga chiqarishdan oldin GET ACTUAL (B) direktivasi yordamida massivning oxirgi o'zgarishlarini kalkulyator xotirasidan nusxalash talab qilinadi.
! DVM$! DVM$
! DVM$! DVM$
! uyaga! bo'l
DASTUR JAC
PARAMETR (L=8, ITMAX=10)
REAL A(L,L), EPS, MAXEPS, B(L,L) TARQATISH (BLOK, BLOK) :: B(I,J) BILAN A(I,J)
massivlar A va B blok taqsimoti bilan PRINT *, *********** TEST JACOBI
MAXEPS = 0,5E - 7_
PARALLEL (J,I) ON A(I,J)
ikkita parallel halqadan, iteratsiya egasi DO J = 1, L bo'lgan qurilmada bajariladi
&k&k&k&k&k&k&k&k&k&k 1
(i,j) A(i,j) elementning irodasi
DO I = 1, LA(I,J) = 0. AGAR(I.EQ.1.OR.JB(I,J) = 0. BOSHQA
ENDIF END DO END DO !DVM$ END REGION
QILING = 1, ITMAX EPS = 0.
!DVM$ ACTUAL(EPS)
!DVM$ REGION
!DVM$ PARALLEL (J,I)
EQ.1.OR.I.EQ.L.OR.J.EQ.L) KEYIN
= (1.+I+J)
ON A(I,J), REDUCTION(MAX(EPS))
!o'zgaruvchisi EPS DO J
ABS (B(I,J)
A(I,J) ) )
SOYANI YANGILASH (A)
+ A(I,J-1) + A(I+1,J) + A(I,J+1)) / 4
maksimal qiymatni hisoblash uchun ishlatiladi = 2, L-1 I = 2, L-1 EPS = MAX (EPS,
A( I, J) = B (I, J)
END DO TUGARLASH
PARALLEL (J,I) ON B(I,J)
DO J = 2, L-1 DO I = 2, L-1
B(I,J) = (A(I-1, J)
END DO DO END DO END REGION GET_ACTUAL(EPS)
PRINT 200, IT, EPS FORMAT(& IT = &,I4, &
AGAR ( EPS . LT . MAXEPS TUG'IRISH ! DVM$ GET_ACTUAL(B)
OCHISH (3, FILE=&JAC.DAT 1 YOZISH (3,*) B YAPISH (3)
! DVM$! DVM$
200
EPS = ) CHISH
E14. 7)
FORM=&FORMATLANGAN&, STATUS=&noma'lum&)
DVMH Fortan tilidagi Jacobi dasturi
Gidrodinamik masalalarni yechish uchun amaliy dasturlar Fortran DVMH tilidan foydalangan holda ishlab chiqilgan.

Download 85.82 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   12




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling