<div dir="ltr">Something is wrong in the settings of the QMMM periodic part of the calculation.<div><br></div><div>Until someone chimes in with a complete solution, I'd suggest removing keywords from the PERIODIC section / playing with the GEEP library size, RCUT etc to see where the most costly part is. <br><br>Matt<br><br>On Friday, June 16, 2017 at 9:52:12 PM UTC+1, Chenghan wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir="ltr">Hi,<div><br></div><div>I am running QM/MM MD on a system containing ~210K atoms and ~110 QM atoms. I got a speed of 150 s/step on one node of 28 Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz using the popt version of cp2k-3.0. When I tried 2 nodes  and 4 nodes I still got ~150 s/step. </div><div>I also compiled the psmp version and tested it with several OMP settings on two nodes and finally I got the optimum when using 1 Thread and 56 MPI ranks.</div><div>These tests were performed along with plumed-2.2.4 but turning off plumed did not make too much change to the speed. </div><div><br></div><div>Any advice is appreciated.</div><div><br></div><div>Best,</div><div>Chenghan</div><div><br></div><div>The timing profile for a short run is:</div><div><br></div><div><div>------------------------------<wbr>------------------------------<wbr>-------------------</div><div> -                                                                             -</div><div> -                                T I M I N G                                  -</div><div> -                                                                             -</div><div> -----------------------------<wbr>------------------------------<wbr>--------------------</div><div> SUBROUTINE                       CALLS  ASD         SELF TIME        TOTAL TIME</div><div>                                MAXIMUM       AVERAGE  MAXIMUM  AVERAGE  MAXIMUM</div><div> CP2K                                 1  1.0    0.296    0.422 1869.596 1869.598</div><div> qs_mol_dyn_low                       1  2.0    0.020    0.035 1836.976 1839.963</div><div> velocity_verlet                     10  3.0    0.096    0.100 1662.628 1662.773</div><div> qmmm_forces                         11  3.9  429.413  894.165 1083.014 1083.020</div><div> qmmm_forces_with_gaussian           11  4.9    0.061    0.078  652.757 1081.757</div><div> qmmm_force_with_gaussian_low        11  5.9    0.000    0.001  645.660 1074.663</div><div> qmmm_forces_gaussian_low_R          11  6.9    0.000    0.000  611.736 1039.217</div><div> qmmm_forces_with_gaussian_LG        11  7.9  611.736 1039.217  611.736 1039.217</div><div> qmmm_el_coupling                    11  3.9    0.000    0.000  647.601  649.152</div></div><div><div> qmmm_elec_with_gaussian             11  4.9  241.206  492.628  647.581  649.132</div><div> qmmm_elec_with_gaussian_low         11  5.9    0.000    0.000  400.905  642.050</div><div> qmmm_elec_gaussian_low_R            11  6.9    0.000    0.000  367.338  606.291</div><div> qmmm_elec_with_gaussian_LG          11  7.9  367.338  606.291  367.338  606.291</div><div> qs_forces                           11  3.9    0.030    0.042   89.895   89.917</div><div> qs_energies                         11  4.9    0.004    0.007   81.215   81.237</div><div> scf_env_do_scf                      11  5.9    0.001    0.004   73.334   73.336</div><div> scf_env_do_scf_inner_loop           63  6.9    0.003    0.010   60.146   60.357</div><div> rebuild_ks_matrix                   74  8.4    0.000    0.000   46.092   46.178</div><div> qs_ks_build_kohn_sham_matrix        74  9.4    0.046    0.058   46.092   46.177</div><div> qs_ks_update_qs_env                 74  7.9    0.001    0.001   37.734   37.806</div></div><div><br></div><div><br></div><div>-----------</div><div><br></div><div>This is my arch file for compiling the popt:</div><div><div>include /home/chhli/local/lib/plumed/<wbr>src/lib/Plumed.inc</div><div>CC       = mpiicc</div></div><div><div>CPP      =</div><div>FC       = mpiifort</div><div>LD       = mpiifort</div><div>AR       = xiar -r</div><div>INTEL_MKL=  $(MKLROOT)</div><div>INTEL_INC = $(MKLROOT)/include/fftw</div><div>INTEL_INC2 = $(MKLROOT)/include</div><div>INTEL_LIB = $(MKLROOT)/lib/intel64</div><div><br></div><div>DFLAGS   = -D__INTEL -D__FFTSG -D__parallel -D__BLACS -D__SCALAPACK -D__FFTW3 -D__FFTMKL -D__PLUMED2</div><div>CPPFLAGS =  -C -traditional $(DFLAGS) -I$(INTEL_INC) -I$(INTEL_INC2)</div><div>FCFLAGS = $(DFLAGS) -I$(INTEL_INC) -I$(INTEL_INC2) -O2 -xHost -heap-arrays 64 -funroll-loops -fpp -free</div><div>FCFLAGS2 = -I$(INTEL_INC) -I$(INTEL_INC2) -O1 -xHost -heap-arrays 64 -fpp -free $(DFLAGS)</div><div>LDFLAGS  = $(FCFLAGS)</div><div>LIBS     = -L$(INTEL_LIB) -Wl,--start-group \</div><div>    $(MKLROOT)/lib/intel64/libmkl_<wbr>scalapack_lp64.a \</div><div>    $(MKLROOT)/lib/intel64/libmkl_<wbr>blacs_intelmpi_lp64.a \</div><div>    $(MKLROOT)/lib/intel64/libmkl_<wbr>intel_lp64.a \</div><div>    $(MKLROOT)/lib/intel64/libmkl_<wbr>sequential.a \</div><div>    $(MKLROOT)/lib/intel64/libmkl_<wbr>core.a \</div><div>    -Wl,--end-group -lpthread -lm  -lz -ldl -lstdc++ \</div><div>    -lplumed -L/home/chhli/local/lib</div><div>OBJECTS_ARCHITECTURE = machine_intel.o</div><div><br></div><div>graphcon.o: graphcon.F</div><div>    $(FC) -c $(FCFLAGS2) $<</div><div><br></div><div>et_coupling.o: et_coupling.F</div><div>    $(FC) -c $(FCFLAGS2) $<</div><div><br></div><div>qs_vxc_atom.o: qs_vxc_atom.F</div><div>    $(FC) -c $(FCFLAGS2) $<</div><div>                                                           </div></div><div><br></div><div>-----------</div><div><br></div><div>This is the arch file I used to compile the psmp version:</div><div><div>include /home/chhli/local/lib/plumed/<wbr>src/lib/Plumed.inc</div><div>#EXTERNAL_OBJECTS=$(PLUMED_<wbr>STATIC_DEPENDENCIES)</div><div>CC       = mpiicc</div><div>CPP      =</div><div>FC       = mpiifort</div><div>LD       = mpiifort</div><div>AR       = xiar -r</div><div>INTEL_MKL=  $(MKLROOT)</div><div>INTEL_INC = $(MKLROOT)/include/fftw</div><div>INTEL_INC2 = $(MKLROOT)/include</div><div>INTEL_LIB = $(MKLROOT)/lib/intel64</div><div><br></div><div>DFLAGS   = -D__INTEL -D__FFTSG -D__parallel -D__BLACS -D__SCALAPACK -D__FFTW3 -D__FFTMKL -D__PLUMED2 -D__MKL</div><div>CPPFLAGS =  -C -traditional $(DFLAGS) -I$(INTEL_INC) -I$(INTEL_INC2)</div><div>FCFLAGS = $(DFLAGS) -I$(INTEL_INC) -I$(INTEL_INC2) -O2 -xHost -heap-arrays 64 -funroll-loops -fpp -free -openmp</div><div>FCFLAGS2 = -I$(INTEL_INC) -I$(INTEL_INC2) -O1 -xHost -heap-arrays 64 -fpp -free $(DFLAGS) -openmp</div><div>LDFLAGS  = $(FCFLAGS)</div><div>LIBS     = -L$(INTEL_LIB) -Wl,--start-group \</div><div>    $(MKLROOT)/lib/intel64/libmkl_<wbr>scalapack_lp64.a \</div><div>    $(MKLROOT)/lib/intel64/libmkl_<wbr>blacs_intelmpi_lp64.a \</div><div>    $(MKLROOT)/lib/intel64/libmkl_<wbr>intel_lp64.a \</div><div>    $(MKLROOT)/lib/intel64/libmkl_<wbr>sequential.a \</div><div>    $(MKLROOT)/lib/intel64/libmkl_<wbr>core.a \</div><div>    -Wl,--end-group -lpthread -lm  -lz -ldl -lstdc++ \</div><div>    -lplumed -L/home/chhli/local/lib -openmp</div><div>OBJECTS_ARCHITECTURE = machine_intel.o</div><div><br></div><div>graphcon.o: graphcon.F</div><div>    $(FC) -c $(FCFLAGS2) $<</div><div><br></div><div>et_coupling.o: et_coupling.F</div><div>    $(FC) -c $(FCFLAGS2) $<</div></div><div><div><br></div><div>qs_vxc_atom.o: qs_vxc_atom.F</div><div>    $(FC) -c $(FCFLAGS2) $<</div></div><div><br></div><div><br></div><div>----------</div><div><br></div><div>The libraries I am using:</div><div>fftw3/3.3.5<br></div><div>intel/16.0<br></div><div>intelmpi/5.1<br></div><div>libmatheval/1.1<br></div><div>mkl/2017<br></div><div>plumed/2.2.4</div><div><br></div><div>----------<br></div><div><br></div><div>The input I am using:</div><div><div>@set dir ../dft/</div><div>&FORCE_EVAL</div><div>  METHOD QMMM</div><div>  &DFT</div><div>    BASIS_SET_FILE_NAME ${dir}GTH_BASIS_SETS</div><div>    POTENTIAL_FILE_NAME ${dir}GTH_POTENTIALS</div><div>    !HERE</div><div>    MULTIPLICITY 1</div><div>    CHARGE -0</div><div>    &MGRID</div><div>     COMMENSURATE</div><div>     CUTOFF 360</div><div>    &END MGRID</div><div>    &QS</div><div>     METHOD GPW</div><div>     EXTRAPOLATION ASPC</div><div>     EXTRAPOLATION_ORDER 2</div><div>    &END QS</div><div>    WFN_RESTART_FILE_NAME SERCA-RESTART.wfn</div><div>    &SCF</div><div>      EPS_SCF 1.0E-6</div><div>      MAX_SCF 400</div><div>      SCF_GUESS RESTART</div><div>      &OUTER_SCF</div><div>        EPS_SCF 1.0E-6</div><div>        MAX_SCF 100</div><div>      &END</div><div>      &OT</div><div>        MINIMIZER DIIS</div><div>        PRECONDITIONER FULL_ALL</div><div>        ENERGY_GAP 0.001</div><div>        STEPSIZE 0.10</div><div>      &END OT</div><div>    &END SCF</div><div>    &XC</div></div><div><div>      &XC_FUNCTIONAL BLYP</div><div>      &END XC_FUNCTIONAL</div><div>      &vdW_POTENTIAL</div><div>         POTENTIAL_TYPE PAIR_POTENTIAL</div><div>         &PAIR_POTENTIAL</div><div>            TYPE DFTD3</div><div>            PARAMETER_FILE_NAME ${dir}dftd3.dat</div><div>            REFERENCE_FUNCTIONAL BLYP</div><div>         &END PAIR_POTENTIAL</div><div>      &END vdW_POTENTIAL</div><div>      &XC_GRID</div><div>        XC_SMOOTH_RHO SPLINE2</div><div>        XC_DERIV SPLINE2_SMOOTH</div><div>      &END XC_GRID</div><div>    &END XC</div><div>  &END DFT</div><div>  &MM</div><div>    &FORCEFIELD</div><div>      PARMTYPE CHM</div><div>      PARM_FILE_NAME ${dir}force_fields/par_<wbr>charmm36.prm</div><div>      EI_SCALE14 1.0</div><div>      VDW_SCALE14 1.0</div><div>      &SPLINE</div><div>        EMAX_SPLINE 1.0E10</div><div>        RCUT_NB 12.0</div><div>      &END SPLINE</div><div>    &END FORCEFIELD</div><div>    &NEIGHBOR_LISTS</div><div>      GEO_CHECK F</div><div>    &END NEIGHBOR_LISTS</div><div>    &POISSON</div><div>      &EWALD</div><div>        EWALD_TYPE spme</div><div>        GMAX 120 120 150</div><div>      &END EWALD</div></div><div><div>    &END POISSON</div><div>  &END MM</div><div>  &SUBSYS</div><div>    &CELL</div><div>      ABC 116.801 116.801 153.240</div><div>    &END CELL</div><div>    &TOPOLOGY</div><div>      CONN_FILE serca_e908.psf</div><div>      CONNECTIVITY PSF</div><div>      COORD_FILE_NAME serca_e908.pdb</div><div>      COORD_FILE_FORMAT PDB</div><div>    &END TOPOLOGY</div></div><div><div>    &KIND H</div><div>      ELEMENT H</div><div>      BASIS_SET TZV2P-GTH</div><div>      POTENTIAL GTH-BLYP-q1</div><div>    &END KIND</div><div>    &KIND O</div><div>      ELEMENT O</div><div>      BASIS_SET TZV2P-GTH</div><div>      POTENTIAL GTH-BLYP-q6</div><div>    &END KIND</div><div>    &KIND C</div><div>      ELEMENT C</div><div>      BASIS_SET TZV2P-GTH</div><div>      POTENTIAL GTH-BLYP-q4</div><div>    &END KIND</div><div>    &KIND N</div><div>      ELEMENT N</div><div>      BASIS_SET TZV2P-GTH</div><div>      POTENTIAL GTH-BLYP-q5</div><div>    &END KIND</div><div>    &KIND S</div><div>      ELEMENT S</div><div>      BASIS_SET TZV2P-GTH</div><div>      POTENTIAL GTH-BLYP-q6</div><div>    &END KIND</div><div>    &KIND CL</div><div>      ELEMENT Cl</div><div>      BASIS_SET TZV2P-GTH</div><div>      POTENTIAL GTH-BLYP-q7</div><div>    &END KIND</div><div>  &END SUBSYS</div><div>  &QMMM</div><div>    PARALLEL_SCHEME GRID</div><div>    &CELL</div><div>      ABC 18 24 32 </div></div><div><div>      PERIODIC XYZ</div><div>    &END CELL</div><div>    E_COUPL GAUSS</div><div>    NOCOMPATIBILITY</div><div>    USE_GEEP_LIB 12</div><div>    &MM_KIND O</div><div>      RADIUS 0.7</div><div>    &END MM_KIND</div><div>    &MM_KIND OH1</div><div>      RADIUS 0.7</div><div>    &END MM_KIND</div><div>    &MM_KIND OT</div><div>      RADIUS 1.2</div><div>    &END MM_KIND</div><div>    &MM_KIND HT</div><div>      RADIUS 0.4</div><div>    &END MM_KIND</div><div>    &MM_KIND OTH</div><div>      RADIUS 1.2</div><div>    &END MM_KIND</div><div>    &MM_KIND HTH</div><div>      RADIUS 0.4</div><div>    &END MM_KIND</div><div>    &MM_KIND CLA</div><div>      RADIUS 1.0</div><div>    &END MM_KIND</div><div>    &MM_KIND H</div><div>      RADIUS 0.3</div><div>    &END MM_KIND</div><div>    &MM_KIND HA</div><div>      RADIUS 0.3</div><div>    &END MM_KIND</div><div>    &MM_KIND HB</div><div>      RADIUS 0.3</div></div><div><div>    &END MM_KIND</div><div>    &MM_KIND C</div><div>      RADIUS 0.7</div><div>    &END MM_KIND</div><div>    &MM_KIND CT1</div><div>      RADIUS 0.7</div><div>    &END MM_KIND</div><div>    &MM_KIND CT2</div><div>      RADIUS 0.7</div><div>    &END MM_KIND</div><div>    &MM_KIND CT3</div><div>      RADIUS 0.7</div><div>    &END MM_KIND</div><div>    &MM_KIND CC</div><div>      RADIUS 0.7</div><div>    &END MM_KIND</div><div>    &MM_KIND NH2</div><div>      RADIUS 0.7</div><div>    &END MM_KIND</div><div>    &MM_KIND NH1</div><div>      RADIUS 0.7</div><div>    &END MM_KIND</div><div>    &MM_KIND OC</div><div>      RADIUS 0.7</div><div>    &END MM_KIND</div><div>    &MM_KIND CC</div><div>      RADIUS 0.7</div><div>    &END MM_KIND</div><div>    &MM_KIND CA</div><div>      RADIUS 0.7</div><div>    &END MM_KIND</div><div>    &MM_KIND HP</div><div>      RADIUS 0.3</div><div>    &END MM_KIND</div></div><div><div>    &MM_KIND CTC</div><div>      RADIUS 0.7</div><div>    &END MM_KIND</div><div>    &MM_KIND NTC</div><div>      RADIUS 0.7</div><div>    &END MM_KIND</div><div>    &MM_KIND NO</div><div>      RADIUS 0.7</div><div>    &END MM_KIND</div><div>    &MM_KIND ON</div><div>      RADIUS 0.7</div><div>    &END MM_KIND</div><div>    &PERIODIC</div><div>      GMAX .5</div><div>      &MULTIPOLE</div><div>        RCUT 12.0</div><div>      &END MULTIPOLE</div><div>    &END PERIODIC</div><div>    &WALLS</div><div>      TYPE QUADRATIC</div><div>      K 0.1</div><div>      WALL_SKIN 2 2 2</div><div>    &END WALLS</div><div>   &QM_KIND H</div></div><div><div>      MM_INDEX 12270 12271 12274 12276 12280 12282 12284 12286 12343 12345 12346 12347 12349 12350 12351 12359 12361 12363 12364 12365 13952 13954 13955 13956 13958 13959 13960 14001 14002 14004 14005 14016 14017 14019 14020 14023 14024 14025 14506 14507 14509 14564 14565 14567 14570 14573 77405 77406 83612 83613 90101 90102 127163 127164 129230 129231 132068 132069 133784 133785 151466 151467 155483 155484 180986 180987 209072 209073 214082 214083 214084</div><div>   &END QM_KIND</div><div>   &QM_KIND O</div><div>      MM_INDEX 12360 14007 14008 14508 77404 83611 90100 127162 129229 132067 133783 151465 155482 180985 209071 214081</div><div>   &END QM_KIND</div><div>   &QM_KIND N</div><div>      MM_INDEX 12275 14566 14571</div><div>   &END QM_KIND</div><div>   &QM_KIND C</div><div>      MM_INDEX 12269 12272 12273 12277 12278 12279 12281 12283 12285 12342 12344 12348 12358 12362 13951 13953 13957 14000 14003 14006 14015 14018 14022 14505 14563 14568 14569 14572</div><div>   &END QM_KIND</div><div>   &QM_KIND S</div><div>      MM_INDEX 14021</div><div>   &END QM_KIND</div></div><div><div>   &LINK</div><div>      QM_INDEX 12269</div><div>      MM_INDEX 12267</div><div>      QM_KIND H</div><div>      LINK_TYPE IMOMM</div><div>      ALPHA_IMOMM 1.5</div><div>   &END LINK</div><div>   &LINK</div><div>      QM_INDEX 12342</div><div>      MM_INDEX 12340</div><div>      QM_KIND H</div><div>      LINK_TYPE IMOMM</div><div>      ALPHA_IMOMM 1.5</div><div>   &END LINK</div><div>   &LINK</div><div>      QM_INDEX 12358</div><div>      MM_INDEX 12356</div><div>      QM_KIND H</div><div>      LINK_TYPE IMOMM</div><div>      ALPHA_IMOMM 1.5</div></div><div><div>   &END LINK</div><div>   &LINK</div><div>      QM_INDEX 13951</div><div>      MM_INDEX 13949</div><div>      QM_KIND H</div><div>      LINK_TYPE IMOMM</div><div>      ALPHA_IMOMM 1.5</div><div>   &END LINK</div><div>   &LINK</div><div>      QM_INDEX 14000</div><div>      MM_INDEX 13998</div><div>      QM_KIND H</div><div>      LINK_TYPE IMOMM</div><div>      ALPHA_IMOMM 1.5</div><div>   &END LINK</div><div>   &LINK</div><div>      QM_INDEX 14015</div><div>      MM_INDEX 14013</div><div>      QM_KIND H</div><div>      LINK_TYPE IMOMM</div><div>      ALPHA_IMOMM 1.5</div><div>   &END LINK</div><div>   &LINK</div><div>      QM_INDEX 14505</div><div>      MM_INDEX 14503</div><div>      QM_KIND H</div><div>      LINK_TYPE IMOMM</div><div>      ALPHA_IMOMM 1.5</div><div>   &END LINK</div></div><div><div>   &LINK</div><div>      QM_INDEX 14563</div><div>      MM_INDEX 14561</div><div>      QM_KIND H</div><div>      LINK_TYPE IMOMM</div><div>      ALPHA_IMOMM 1.5</div><div>   &END LINK</div></div><div><div>  &END QMMM</div><div>&END FORCE_EVAL</div><div>&GLOBAL</div><div>  PROJECT SERCA</div><div>  RUN_TYPE MD</div><div>  PRINT_LEVEL LOW</div><div>&END GLOBAL</div><div>&MOTION</div><div>  &FREE_ENERGY</div><div>   &METADYN</div><div>      USE_PLUMED T</div><div>      PLUMED_INPUT_FILE ./plumed.dat</div><div>    &END METADYN</div><div>  &END FREE_ENERGY</div><div>  &MD</div><div>    ENSEMBLE NVT</div><div>    COMVEL_TOL 1.0E-5</div><div>    STEPS  1000000</div><div>    TIMESTEP 0.5</div><div>    TEMPERATURE 310</div><div>    &THERMOSTAT</div><div>      TYPE NOSE</div><div>      &NOSE</div><div>        TIMECON 100</div><div>      &END NOSE</div><div>    &END THERMOSTAT</div><div>    &PRINT</div><div>     &ENERGY SILENT</div><div>       &EACH</div><div>        MD 100</div><div>       &END</div></div><div><div>       FILENAME MDENER.out</div><div>     &END ENERGY</div><div>    &END PRINT</div><div>  &END MD</div><div>   &GEO_OPT</div><div>     OPTIMIZER CG</div><div>     MAX_ITER 200</div><div>   &END GEO_OPT</div><div>  &PRINT</div><div>   &TRAJECTORY</div><div>    FILENAME NVT</div><div>     &EACH</div><div>       MD 50</div><div>     &END</div><div>   &END TRAJECTORY</div><div>   &VELOCITIES OFF</div><div>   &END VELOCITIES</div><div>   &RESTART SILENT</div><div>     &EACH</div><div>       MD 5</div><div>     &END</div><div>   &END</div><div>  &END PRINT</div><div>&END MOTION</div></div><div><br></div></div></blockquote></div></div>