Hirdetés
- 3D nyomtatás
- Hobby elektronika
- Kormányok / autós szimulátorok topikja
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Milyen billentyűzetet vegyek?
- 5.1, 7.1 és gamer fejhallgatók
- HTPC (házimozi PC) topik
- Idővel kicsúszik az aljzatból a 12V-2x6 tápkonnektor?
- Ügyesen előzi meg a 12V-2x6 tápkonnektor leégését a Dell
- Kérsz egy pohár hardverbólét?
-
PROHARDVER!

Ú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!
- Óra topik
- Gyúrósok ide!
- Gitáros topic
- 3D nyomtatás
- Hobby elektronika
- Babra megy a játék az iPhone 18 Pro esetében
- Arc Raiders
- Kormányok / autós szimulátorok topikja
- Feltörték a regisztrációmat vagy elvesztettem a belépési emailcímet, 2FA-t
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- További aktív témák...
- Eladó iMac Pro (2017) 27 CTO 8-core Xeon, 64GB RAM, 1TB SSD-Magic Keyboard+M.Mouse 2+M.Trackpad
- Lenovo ThinkPad P52 15.6" FHD IPS i7-8750H P1000 16GB 500GB NVMe ujjolv gar
- AKCIÓ! Intel Core i9 10900 10mag 20szál processzor garanciával hibátlan működéssel
- PlayStation Portal , garanciás , üvegfólia + ajándék Venom tok
- Bomba ár! HP EliteBook 840 G3 - i5-6GEN I 8GB I 256GB SSD I 14" HD I Cam I W11 I Garancia!
- BESZÁMÍTÁS! MSI MAG B365M i5 9600KF 16GB DDR4 512GB SSD RTX 2060 6GB Kolink Stronghold Seasonic 550W
- Bomba ár! Lenovo ThinkPad T440s Touch - i5-4GEN I 8GB I 128GB SSD I 14" HD+ I Cam I W10 I Garancia!
- Számítógép - Gamer PC! Csere-Beszámítás! R5 5600G / RTX 4060 / 32GB DDR4 / 1TB SSD
- LG UltraFine 4K - 6K és Smart Monitorok -30%
- Prémium PC házak akár 20-40% kedvezménnyel eladók garanciával, számlával! Upd. 02.21
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


