[Q-e-commits] espresso/CPV cplib.f90, 1.183, 1.184 ortho_base.f90, 1.54, 1.55 wave.f90, 1.33, 1.34

ccavazzoni at qe-forge.org ccavazzoni at qe-forge.org
Fri May 29 17:50:29 CEST 2009


Update of /cvsroot/q-e/espresso/CPV
In directory qeforge.qe-forge.org:/tmp/cvs-serv7013

Modified Files:
	cplib.f90 ortho_base.f90 wave.f90 
Log Message:
- some more OpenMP parallelization
- bug fix, computing Self Interaction Corrections with CP


Index: cplib.f90
===================================================================
RCS file: /cvsroot/q-e/espresso/CPV/cplib.f90,v
retrieving revision 1.183
retrieving revision 1.184
diff -u -d -r1.183 -r1.184
--- cplib.f90	24 May 2009 17:29:52 -0000	1.183
+++ cplib.f90	29 May 2009 15:50:27 -0000	1.184
@@ -2075,18 +2075,16 @@
 
       eh = DBLE( zh ) * wz * 0.5d0 * fpi / tpiba2
 !
+      CALL mp_sum( eh, intra_image_comm )
+      !
       IF ( ttsic ) THEN
          !
          CALL self_vofhar( .false., self_ehte, self_vloc, rhog, omega, h )
          !
          eh = eh - self_ehte / omega
-
-         CALL mp_sum( self_ehte, intra_image_comm )
          !
       END IF
       !
-      CALL mp_sum( eh, intra_image_comm )
-      !
       IF(tpre) THEN
          !
          CALL add_drhoph( drhot, sfac, gagb )
@@ -2152,10 +2150,12 @@
       IF( nspin == 1 ) THEN
          iss = 1
          if (abivol.or.abisur) then
+!$omp parallel do
             do ir=1,nnr
                v(ir)=CMPLX( rhor( ir, iss ) + v_vol( ir ), 0.d0 )
             end do           
          else
+!$omp parallel do
             do ir=1,nnr
                v(ir)=CMPLX( rhor( ir, iss ), 0.d0 )
             end do
@@ -2165,6 +2165,7 @@
          !
          CALL fwfft( 'Dense', v, dfftp )
 !
+!$omp parallel do
          DO ig = 1, ng
             rhog( ig, iss ) = vtemp(ig) + v( np( ig ) )
          END DO
@@ -2176,15 +2177,18 @@
          isup=1
          isdw=2
          if (abivol.or.abisur) then
+!$omp parallel do
             do ir=1,nnr
                v(ir)=CMPLX(rhor(ir,isup)+v_vol(ir),rhor(ir,isdw)+v_vol(ir))
             end do
          else
+!$omp parallel do
             do ir=1,nnr
                v(ir)=CMPLX(rhor(ir,isup),rhor(ir,isdw))
             end do
          end if
          CALL fwfft('Dense',v, dfftp )
+!$omp parallel do private(fp,fm)
          DO ig=1,ng
             fp=v(np(ig))+v(nm(ig))
             fm=v(np(ig))-v(nm(ig))
@@ -2223,6 +2227,7 @@
       v(:) = (0.d0, 0.d0)
       IF(nspin.EQ.1) THEN
          iss=1
+!$omp parallel do
          DO ig=1,ng
             v(np(ig))=rhog(ig,iss)
             v(nm(ig))=CONJG(rhog(ig,iss))
@@ -2232,6 +2237,7 @@
 !
          CALL invfft('Dense',v, dfftp )
 !
+!$omp parallel do
          DO ir=1,nnr
             rhor(ir,iss)=DBLE(v(ir))
          END DO
@@ -2242,12 +2248,14 @@
       ELSE
          isup=1
          isdw=2
+!$omp parallel do
          DO ig=1,ng
             v(np(ig))=rhog(ig,isup)+ci*rhog(ig,isdw)
             v(nm(ig))=CONJG(rhog(ig,isup)) +ci*CONJG(rhog(ig,isdw))
          END DO
 !
          CALL invfft('Dense',v, dfftp )
+!$omp parallel do
          DO ir=1,nnr
             rhor(ir,isup)= DBLE(v(ir))
             rhor(ir,isdw)=AIMAG(v(ir))
@@ -2268,6 +2276,7 @@
       IF(nspin.EQ.1)THEN
          !
          iss=1
+!$omp parallel do
          DO ig=1,ngs
             vs(nms(ig))=CONJG(rhog(ig,iss))
             vs(nps(ig))=rhog(ig,iss)
@@ -2275,6 +2284,7 @@
          !
          CALL invfft('Smooth',vs, dffts )
          !
+!$omp parallel do
          DO ir=1,nnrsx
             rhos(ir,iss)=DBLE(vs(ir))
          END DO
@@ -2283,6 +2293,7 @@
          !
          isup=1
          isdw=2
+!$omp parallel do
          DO ig=1,ngs
             vs(nps(ig))=rhog(ig,isup)+ci*rhog(ig,isdw)
             vs(nms(ig))=CONJG(rhog(ig,isup)) +ci*CONJG(rhog(ig,isdw))
@@ -2290,6 +2301,7 @@
          !
          CALL invfft('Smooth',vs, dffts )
          !
+!$omp parallel do
          DO ir=1,nnrsx
             rhos(ir,isup)= DBLE(vs(ir))
             rhos(ir,isdw)=AIMAG(vs(ir))

Index: ortho_base.f90
===================================================================
RCS file: /cvsroot/q-e/espresso/CPV/ortho_base.f90,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -d -r1.54 -r1.55
--- ortho_base.f90	24 May 2009 17:29:52 -0000	1.54
+++ ortho_base.f90	29 May 2009 15:50:27 -0000	1.55
@@ -1329,17 +1329,21 @@
       END IF
 !
       IF( PRESENT( ema0bg ) ) THEN
+!$omp parallel do default(shared), private(i)
          DO j=1,n
             DO i=1,ngw
                phi(i,j)=(phi(i,j)+c0(i,j))*ema0bg(i)
             END DO
          END DO
+!$omp end parallel do
       ELSE
+!$omp parallel do default(shared), private(i)
          DO j=1,n
             DO i=1,ngw
                phi(i,j)=phi(i,j)+c0(i,j)
             END DO
          END DO
+!$omp end parallel do
       END IF
 
       !   

Index: wave.f90
===================================================================
RCS file: /cvsroot/q-e/espresso/CPV/wave.f90,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- wave.f90	5 Nov 2008 20:25:17 -0000	1.33
+++ wave.f90	29 May 2009 15:50:27 -0000	1.34
@@ -409,7 +409,6 @@
         DO ig = 1, ngw
           cm( ig, ib ) = pwt( ig_l2g( ig ) )
         END DO
-        ! CALL splitwf ( cm( :, ib ), pwt, ngw, ig_l2g, me_image, nproc_image, root_image, intra_image_comm )
       END DO
       IF ( gzero ) THEN
         cm( 1, noff : noff + n - 1 ) = (0.0d0, 0.0d0)



More information about the Q-e-commits mailing list