From 01e09da9fe72aaeabd775b0bbd55a7b8addb69ae Mon Sep 17 00:00:00 2001 From: Cezary Czaplewski Date: Wed, 6 May 2015 12:58:40 +0200 Subject: [PATCH] minimization in int works with FGPROCS>1 (+some cleaning of debug print and MPICH2 as default in Makefile) --- source/unres/src_MD/Makefile_MPICH_ifort | 17 +++++++++-------- source/unres/src_MD/chainbuild.F | 23 +++++++++++++++++++++++ source/unres/src_MD/energy_p_new_barrier.F | 4 ++-- source/unres/src_MD/minimize_p.F | 4 +++- 4 files changed, 37 insertions(+), 11 deletions(-) diff --git a/source/unres/src_MD/Makefile_MPICH_ifort b/source/unres/src_MD/Makefile_MPICH_ifort index 8a07ff9..8c860d5 100644 --- a/source/unres/src_MD/Makefile_MPICH_ifort +++ b/source/unres/src_MD/Makefile_MPICH_ifort @@ -1,5 +1,6 @@ ################################################################### -INSTALL_DIR = /users/software/mpich-1.2.7p1_intel-10.1_em64_ssh +#INSTALL_DIR = /users/software/mpich-1.2.7p1_intel-10.1_em64_ssh +INSTALL_DIR = /users/software/mpich2-1.4.1p1_intel FC= ifort @@ -8,13 +9,13 @@ OPT = -O3 -ip FFLAGS = -c ${OPT} -I$(INSTALL_DIR)/include FFLAGS1 = -c -g -CA -CB -I$(INSTALL_DIR)/include -FFLAGS2 = -c -g -O0 -I$(INSTALL_DIR)/include +FFLAGS2 = -c -O3 -I$(INSTALL_DIR)/include FFLAGSE = -c -O3 -ipo -opt_report -I$(INSTALL_DIR)/include #FFLAGS = ${FFLAGS1} #FFLAGSE = ${FFLAGS1} - -LIBS = -L$(INSTALL_DIR)/lib -lmpich xdrf/libxdrf.a +# -lmpl necessary in mpich +LIBS = -L$(INSTALL_DIR)/lib -lmpich xdrf/libxdrf.a -lmpl -CB ARCH = LINUX PP = /lib/cpp -P @@ -48,7 +49,7 @@ no_option: GAB: CPPFLAGS = -DPROCOR -DLINUX -DPGI -DAMD64 -DUNRES -DISNAN -DMP -DMPI \ -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC -GAB: BIN = ../../../bin/unres/MD/unres_ifort_MPICH_GAB.exe +GAB: BIN = ../../../bin/unres/MD/unres_ifort_MPICH2_GAB.exe GAB: ${object} xdrf/libxdrf.a cc -o compinfo compinfo.c ./compinfo | true @@ -57,7 +58,7 @@ GAB: ${object} xdrf/libxdrf.a 4P: CPPFLAGS = -DLINUX -DPGI -DAMD64 -DUNRES -DISNAN -DMP -DMPI \ -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC -4P: BIN = ../../../bin/unres/MD/unres_ifort_MPICH_4P.exe +4P: BIN = ../../../bin/unres/MD/unres_ifort_MPICH2_4P.exe 4P: ${object} xdrf/libxdrf.a cc -o compinfo compinfo.c ./compinfo | true @@ -66,7 +67,7 @@ GAB: ${object} xdrf/libxdrf.a E0LL2Y: CPPFLAGS = -DPROCOR -DLINUX -DPGI -DAMD64 -DUNRES -DISNAN -DMP -DMPI \ -DSPLITELE -DLANG0 -E0LL2Y: BIN = ../../../bin/unres/MD/unres_ifort_MPICH_E0LL2Y.exe +E0LL2Y: BIN = ../../../bin/unres/MD/unres_ifort_MPICH2_E0LL2Y.exe E0LL2Y: ${object} xdrf/libxdrf.a cc -o compinfo compinfo.c ./compinfo | true @@ -102,7 +103,7 @@ readpdb.o : readpdb.F ${FC} ${FFLAGS2} ${CPPFLAGS} readpdb.F sumsld.o : sumsld.f - ${FC} ${FFLAGS2} ${CPPFLAGS} sumsld.f + ${FC} ${FFLAGS2} ${CPPFLAGS} -vec-report2 sumsld.f cored.o : cored.f ${FC} ${FFLAGS2} ${CPPFLAGS} cored.f diff --git a/source/unres/src_MD/chainbuild.F b/source/unres/src_MD/chainbuild.F index 45a1a53..235db7f 100644 --- a/source/unres/src_MD/chainbuild.F +++ b/source/unres/src_MD/chainbuild.F @@ -5,6 +5,11 @@ C As of 2/17/95. C implicit real*8 (a-h,o-z) include 'DIMENSIONS' +#ifdef MPI + include 'mpif.h' + include 'COMMON.SETUP' + include 'COMMON.TIME1' +#endif include 'COMMON.CHAIN' include 'COMMON.LOCAL' include 'COMMON.GEO' @@ -15,6 +20,24 @@ C logical lprn C Set lprn=.true. for debugging lprn = .false. +#ifdef MPI + if (nfgtasks.gt.1) then + time00=MPI_Wtime() + if (fg_rank.eq.0) + & call MPI_Bcast(13,1,MPI_INTEGER,king,FG_COMM,IERROR) + time01=MPI_Wtime() + call MPI_Bcast(phi(1),nres,MPI_DOUBLE_PRECISION, + & king,FG_COMM,IERR) + call MPI_Bcast(theta(1),nres,MPI_DOUBLE_PRECISION, + & king,FG_COMM,IERR) + call MPI_Bcast(alph(1),nres,MPI_DOUBLE_PRECISION, + & king,FG_COMM,IERR) + call MPI_Bcast(omeg(1),nres,MPI_DOUBLE_PRECISION, + & king,FG_COMM,IERR) + time_bcast=time_bcast+MPI_Wtime()-time00 + time_bcastc=time_bcastc+MPI_Wtime()-time01 + endif +#endif C C Define the origin and orientation of the coordinate system and locate the C first three CA's and SC(2). diff --git a/source/unres/src_MD/energy_p_new_barrier.F b/source/unres/src_MD/energy_p_new_barrier.F index 9481003..3316a1f 100644 --- a/source/unres/src_MD/energy_p_new_barrier.F +++ b/source/unres/src_MD/energy_p_new_barrier.F @@ -4862,8 +4862,8 @@ C & sinph1ph2(maxdouble,maxdouble) logical lprn /.false./, lprn1 /.false./ etheta=0.0D0 - write (iout,*) "EBEND ithet_start",ithet_start, - & " ithet_end",ithet_end +c write (iout,*) "EBEND ithet_start",ithet_start, +c & " ithet_end",ithet_end do i=ithet_start,ithet_end if ((itype(i-1).eq.ntyp1).or.(itype(i-2).eq.ntyp1).or. &(itype(i).eq.ntyp1)) cycle diff --git a/source/unres/src_MD/minimize_p.F b/source/unres/src_MD/minimize_p.F index 14c8bd8..dbf9629 100644 --- a/source/unres/src_MD/minimize_p.F +++ b/source/unres/src_MD/minimize_p.F @@ -242,6 +242,8 @@ c sum it over FG_COMM call MPI_Barrier(FG_COMM,IERR) call MPI_Reduce(e_tmp,ehomology_constr,1, & MPI_DOUBLE_PRECISION,MPI_SUM,king,FG_COMM,IERR) + else if (iorder.eq.13) then + call chainbuild endif enddo write (*,*) 'Processor',fg_rank,' CG group',kolor, @@ -281,7 +283,7 @@ cd write (iout,*) 'ETOTAL called from FUNC' f=energia(0) c if (jjj.gt.0) then c write (iout,'(10f8.3)') (rad2deg*x(i),i=1,n) -c write (iout,*) 'f=',etot +c write (iout,*) 'f=',f c jjj=0 c endif return -- 1.7.9.5