计算化学公社

标题: 关于cp2k+plumed编译后计算速度慢的现象 [打印本页]

作者
Author:
温暖的白    时间: 2021-6-7 15:59
标题: 关于cp2k+plumed编译后计算速度慢的现象
本帖最后由 温暖的白 于 2021-6-7 16:48 编辑

各位大大好,请问一下,我是在一个超算集群上使用cp2k的,目前编译了两个cp2k8.1一个是带了plumed的另一个没带,我现在跑一个需要调用plumed功能的算例。分别用这两个cp2k进行计算,带plumed的软件的算例计算速度相比不带plumed的软件计算速度要慢了一半。如果测试不需要调用plumed的普通算例,两个软件的计算速度基本相同,请问一下这个现象是正常的么?
下面是我的makefile
Tested with  Intel(R) Fortran Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 18.0.5.274 Build 20180823
#              Intel(R) Fortran Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.1.3.304 Build 20200925
#              Intel MPI, MKL
# Author: Matthias Krack (matthias.krack@psi.ch, PSI, December 2020)

CC        = mpiicc
FC        = mpiifort
LD        = mpiifort
AR        = ar -r

LIBXC_DIR=/public3/soft/libxc/4.3.4-icc17-ls
LIBINT_DIR=/public3/soft/libint/2.6.0-icc17
LIBXSMM_DIR=/public3/soft/libxsmm/master-icc17
PLUMED2=/public3/soft/cp2k/8.1/plumed-install

PLUMEDDIR     =        /public3/soft/cp2k/8.1/plumed-install/lib/plumed/src/lib
PLUMEDINC     =        $(PLUMEDDIR)/Plumed.inc
include $(PLUMEDINC)
EXTERNAL_OBJECTS=$(PLUMED_STATIC_DEPENDENCIES)
CFLAGS    = -O2 -g -qopenmp -traceback -std=c99 -march=core-avx2 -stand=f08

DFLAGS    = -D__FFTW3 -D__LIBXC -D__LIBXSMM -D__LIBINT -D__LIBXSMM
DFLAGS   += -D__MAX_CONTR=4
DFLAGS   += -D__MKL
DFLAGS   += -D__MPI_VERSION=3
DFLAGS   += -D__parallel
DFLAGS   += -D__SCALAPACK
DFLAGS   += -D__PLUMED2

FCFLAGS   = $(CFLAGS) $(DFLAGS)
FCFLAGS  += -diag-disable=8291
FCFLAGS  += -diag-disable=8293
FCFLAGS  += -fpp
FCFLAGS  += -fp-model precise
FCFLAGS  += -free
FCFLAGS  += -funroll-loops
FCFLAGS  += -I$(MKLROOT)/include -I$(LIBXC_DIR)/include -I$(LIBINT_DIR)/include
FCFLAGS  += -I/public4/soft/fftw/3.3.8-mpi/include
FCFLAGS  += -I${LIBXSMM_DIR}/include -D__LIBXSMM
FCFLAGS  += -I${PLUMED2}/include


LDFLAGS   = $(FCFLAGS) -static-intel -static_mpi
LDFLAGS_C = -nofor_main

MKL_LIB   = $(MKLROOT)/lib/intel64

LIBS      = $(MKL_LIB)/libmkl_scalapack_lp64.a
LIBS     += -Wl,--start-group
LIBS     += $(MKL_LIB)/libmkl_intel_lp64.a
LIBS     += $(MKL_LIB)/libmkl_sequential.a
LIBS     += $(MKL_LIB)/libmkl_core.a
LIBS     += $(MKL_LIB)/libmkl_blacs_intelmpi_lp64.a -L$(LIBXC_DIR)/lib -lxcf03 -lxc -L$(LIBINT_DIR)/lib -lint2 -lstdc++ -L$(LIBXC_DIR)/lib -lxcf03 -lxc
LIBS     += -Wl,--end-group
LIBS     += -L${LIBXSMM_DIR}/lib -lxsmmf -lxsmmnoblas -lxsmm -ldl -mkl
LIBS     += -L$(PLUMED2)/lib -lplumed -lplumedKernel -lstdc++ -ldl -lz


# Required due to memory leak that occurs if high optimisations are used
mp2_optimize_ri_basis.o: mp2_optimize_ri_basis.F
        $(FC) -c $(subst O2,O0,$(FCFLAGS)) $<
作者
Author:
abin    时间: 2021-6-7 16:19
官方开发论坛中,
有数个报告,cp2k v8.1慢,但是提到的模块和你用的plumed应该没有关系。

推测可能是编译参数有问题。

建议,采用intel编译器处理全套,效率会不错的。

作者
Author:
温暖的白    时间: 2021-6-7 16:45
abin 发表于 2021-6-7 16:19
官方开发论坛中,
有数个报告,cp2k v8.1慢,但是提到的模块和你用的plumed应该没有关系。

好的,谢谢大大,确实很奇怪,我的所有依赖都是用的intel17编译的。makefile中只修改了一些依赖的路径 Tested with  Intel(R) Fortran Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 18.0.5.274 Build 20180823
#              Intel(R) Fortran Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.1.3.304 Build 20200925
#              Intel MPI, MKL
# Author: Matthias Krack (matthias.krack@psi.ch, PSI, December 2020)

CC        = mpiicc
FC        = mpiifort
LD        = mpiifort
AR        = ar -r

LIBXC_DIR=/public3/soft/libxc/4.3.4-icc17-ls
LIBINT_DIR=/public3/soft/libint/2.6.0-icc17
LIBXSMM_DIR=/public3/soft/libxsmm/master-icc17
PLUMED2=/public3/soft/cp2k/8.1/plumed-install

PLUMEDDIR     =        /public3/soft/cp2k/8.1/plumed-install/lib/plumed/src/lib
PLUMEDINC     =        $(PLUMEDDIR)/Plumed.inc
include $(PLUMEDINC)
EXTERNAL_OBJECTS=$(PLUMED_STATIC_DEPENDENCIES)
CFLAGS    = -O2 -g -qopenmp -traceback -std=c99 -march=core-avx2 -stand=f08

DFLAGS    = -D__FFTW3 -D__LIBXC -D__LIBXSMM -D__LIBINT -D__LIBXSMM
DFLAGS   += -D__MAX_CONTR=4
DFLAGS   += -D__MKL
DFLAGS   += -D__MPI_VERSION=3
DFLAGS   += -D__parallel
DFLAGS   += -D__SCALAPACK
DFLAGS   += -D__PLUMED2

FCFLAGS   = $(CFLAGS) $(DFLAGS)
FCFLAGS  += -diag-disable=8291
FCFLAGS  += -diag-disable=8293
FCFLAGS  += -fpp
FCFLAGS  += -fp-model precise
FCFLAGS  += -free
FCFLAGS  += -funroll-loops
FCFLAGS  += -I$(MKLROOT)/include -I$(LIBXC_DIR)/include -I$(LIBINT_DIR)/include
FCFLAGS  += -I/public4/soft/fftw/3.3.8-mpi/include
FCFLAGS  += -I${LIBXSMM_DIR}/include -D__LIBXSMM
FCFLAGS  += -I${PLUMED2}/include


LDFLAGS   = $(FCFLAGS) -static-intel -static_mpi
LDFLAGS_C = -nofor_main

MKL_LIB   = $(MKLROOT)/lib/intel64

LIBS      = $(MKL_LIB)/libmkl_scalapack_lp64.a
LIBS     += -Wl,--start-group
LIBS     += $(MKL_LIB)/libmkl_intel_lp64.a
LIBS     += $(MKL_LIB)/libmkl_sequential.a
LIBS     += $(MKL_LIB)/libmkl_core.a
LIBS     += $(MKL_LIB)/libmkl_blacs_intelmpi_lp64.a -L$(LIBXC_DIR)/lib -lxcf03 -lxc -L$(LIBINT_DIR)/lib -lint2 -lstdc++ -L$(LIBXC_DIR)/lib -lxcf03 -lxc
LIBS     += -Wl,--end-group
LIBS     += -L${LIBXSMM_DIR}/lib -lxsmmf -lxsmmnoblas -lxsmm -ldl -mkl
LIBS     += -L$(PLUMED2)/lib -lplumed -lplumedKernel -lstdc++ -ldl -lz


# Required due to memory leak that occurs if high optimisations are used
mp2_optimize_ri_basis.o: mp2_optimize_ri_basis.F
        $(FC) -c $(subst O2,O0,$(FCFLAGS)) $<
作者
Author:
abin    时间: 2021-6-7 17:39
温暖的白 发表于 2021-6-7 16:45
好的,谢谢大大,确实很奇怪,我的所有依赖都是用的intel17编译的。makefile中只修改了一些依赖的路径 Te ...

推测你编译的PLUMED存在效率问题呗。 短时间测试看不出来,
耗时较多的计算可能就有差异了。

官方提供的makefile文件,讲的是cp2k本体如何编译,
没有明确设计外挂组件如何优化。

其他方面,我不懂,不清楚。
作者
Author:
温暖的白    时间: 2021-6-7 17:46
abin 发表于 2021-6-7 17:39
推测你编译的PLUMED存在效率问题呗。 短时间测试看不出来,
耗时较多的计算可能就有差异了。

好的谢谢您啦
作者
Author:
k64_cc    时间: 2021-6-8 10:35
你先check一下两个任务每个SCF cycle的速度有没有差别,以及两个任务每一步SCF的收敛难度是不是不同。如果只用Plumed输出简单的CV,而不做enhanced sampling,速度会不会有区别?

有一种可能是你enhanced sampling之后体系更难收敛了。
作者
Author:
zgdong    时间: 2022-12-2 22:03
您好,请问cp2k安装过程中使用--with-plumed=install安装后,是否还需要单独编译plumed
作者
Author:
gog    时间: 2022-12-3 10:25
本帖最后由 gog 于 2022-12-3 10:26 编辑
zgdong 发表于 2022-12-2 22:03
您好,请问cp2k安装过程中使用--with-plumed=install安装后,是否还需要单独编译plumed

cp2k调用的是库文件。使用cp2k,就不需要单独编译。如果是其他软件要用plumed,就不清楚 是否还需要单独编译plumed。
作者
Author:
zgdong    时间: 2022-12-3 11:11
非常感谢。我想cp2k与plumed联用,但实际使用时提示:Requested to use plumed for metadynamics, but cp2k was not compiled  with plumed support.  我安装时只用了--with-plumed=install,没有向官网那样编译修改arch文件夹的popt文件,因为我理解那个教程是plumed与cp2k分开安装,所以需要单独编译。现在很困惑,到底什么原因?

作者
Author:
zgdong    时间: 2022-12-3 11:12
另外,我安装的是openmpi





欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3