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.
|
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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling