- iPhone topik
- Telekom mobilszolgáltatások
- Apple Watch Sport - ez is csak egy okosóra
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Samsung Galaxy S22 Ultra - na, kinél van toll?
- Mobil flották
- Leesett a kamionról több millió eurónyi Z Fold7
- Xiaomi 15 - kicsi telefon nagy energiával
Hirdetés
Talpon vagyunk, köszönjük a sok biztatást! Ha segíteni szeretnél, boldogan ajánljuk Előfizetéseinket!
-
Mobilarena
Új hozzászólás Aktív témák
-
pomorski
őstag
Sziasztok,
egy kis okosságra/segítségre volna szükségem többszálas (openmp) programozás kapcsán. Adott egy fortran kód, amit mi írtunk, néhányezer soros egyszálas. Kimértük, hogy vannak olyan részek, amik végrehajtása nagyon-nagyon időigényes, ezért kézenfekvő volt az ötlet, hogy párhuzamosítani kellene openmp segítségével az időigényes blokkokat a lehető legtriviálisabb módon. Az egyik ilyen időigényes blokk az alábbi:
.
.
.
.
.
jb=0
do ib=1,elteres
do kb=1,mutato(ib)
jb=jb+1
jk=0
do ik=1,elteres
do kk=1,mutato(ik)
jk=jk+1
if (ib.eq.ik)then
sl_tmp=0._dp
if(kb.eq.kk)sl_tmp=egyedi_proton_spe(jb,jk,mm/2,n_of_sdet,s)
if(s(jb)%neutron.eq.s(jk)%neutron.and.kb.ge.kk)then
sl_tmp1=egyedi_proton_tbint(jb,jk,mm/2,n_of_sdet,s)
ujhmatp(ib)%hh(kk,kb)=sl_tmp+sl_tmp1
ujhmatp(ib)%hh(kb,kk)=sl_tmp+sl_tmp1
endif
endif
enddo
enddo
enddo
enddo
.
.
.
.
.
ezt az alábbi módon openmp-sítettem (a legbelső vastag betűvel szedett részt):
.
.
.
.
.
jb=0
do ib=1,elteres
do kb=1,mutato(ib)
jb=jb+1
jk=0
do ik=1,elteres!$omp parallel &
!$omp private(kk,sl_tmp,sl_tmp1) &
!$omp reduction(+:jk)
!$omp dodo kk=1,mutato(ik)
jk=jk+1
if (ib.eq.ik)then
sl_tmp=0._dp
if(kb.eq.kk)sl_tmp=egyedi_proton_spe(jb,jk,mm/2,n_of_sdet,s)
if(s(jb)%neutron.eq.s(jk)%neutron.and.kb.ge.kk)then
sl_tmp1=egyedi_proton_tbint(jb,jk,mm/2,n_of_sdet,s)
ujhmatp(ib)%hh(kk,kb)=sl_tmp+sl_tmp1
ujhmatp(ib)%hh(kb,kk)=sl_tmp+sl_tmp1
endif
endif
enddo!$omp end do
!$omp end parallelenddo
enddo
enddo
.
.
.
.
.
de sajnos hülyeséget számol a progi, ha őt -openmp kapcsolóval fordítom le. Ha nem rakom be eme kapcsolót, és a fordító egyszálas üzemmódban fordítja, akkor tökéletes eredményt számol a progi, -csak lassan ugyebár.“Ökölszabályként” tudom, hogy ami értéket kap az “private”, ami felösszegződik, annál használni kell a reduction-t. Illetve azt is, tudom, hogy időként szükség van a “shared”-re is. Sok mindent kipróbáltam, de a kód csak nem akar megfelelő lenni többszálas fordítás esetén. Ötlet?
szerk: Sajnos csak így sikerült beilleszteni a kódot, a formázás eltűnt, bocs.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Xiaomi 15 12/512GB, új, rengeteg kiegészítővel, garanciális
- iKing.Hu Samsung Galaxy S25 Plus Navy 12/256 GB Használt, karcmentes állapotban 3 hónap garanciával!
- iKing.Hu - Apple iPhone 15 Plus Black Használt, karcmentes 256 GB tárhely 3 hónap garancia!
- iKing.Hu - Motorola Razr 40 Ultra Glacier Blue 8 GB RAM / 256 GB tárhely Használt, karcmentes
- iKing.Hu - Motorola Razr 50 Ultra Midnight Blue Használt, karcmentes állapotban 12 GB RAM / 512 GB
- Eredeti Lenovo 300W töltők - ADL300SDC3A
- Telefon felváráslás!! Xiaomi 13T, Xiaomi 13T Pro, Xiaomi 14T, Xiaomi 14T Pro
- LG 83C3 - 83" OLED evo - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox!
- AKCIÓ! Apple iPad Pro 13 2024 M4 512GB Cellular tablet garanciával hibátlan működéssel
- HP 440 G6 Intel i5-8265U laptop (Bekapcsoló gomb hibás)
Állásajánlatok
Cég: FOTC
Város: Budapest