计算化学公社

 找回密码 Forget password
 注册 Register
Views: 12230|回复 Reply: 9
打印 Print 上一主题 Last thread 下一主题 Next thread

[CP2K] 关于cp2k+plumed编译后计算速度慢的现象

[复制链接 Copy URL]

3

帖子

0

威望

9

eV
积分
12

Level 1 能力者

本帖最后由 温暖的白 于 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)) $<

2425

帖子

1

威望

6196

eV
积分
8641

Level 6 (一方通行)

2#
发表于 Post on 2021-6-7 16:19:24 | 只看该作者 Only view this author
官方开发论坛中,
有数个报告,cp2k v8.1慢,但是提到的模块和你用的plumed应该没有关系。

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

建议,采用intel编译器处理全套,效率会不错的。
High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
https://labitc.top
http://tophpc.top:8080
电邮: ask@hpc4you.top

3

帖子

0

威望

9

eV
积分
12

Level 1 能力者

3#
 楼主 Author| 发表于 Post on 2021-6-7 16:45:01 | 只看该作者 Only view this author
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)) $<

2425

帖子

1

威望

6196

eV
积分
8641

Level 6 (一方通行)

4#
发表于 Post on 2021-6-7 17:39:25 | 只看该作者 Only view this author
温暖的白 发表于 2021-6-7 16:45
好的,谢谢大大,确实很奇怪,我的所有依赖都是用的intel17编译的。makefile中只修改了一些依赖的路径 Te ...

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

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

其他方面,我不懂,不清楚。
High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
https://labitc.top
http://tophpc.top:8080
电邮: ask@hpc4you.top

3

帖子

0

威望

9

eV
积分
12

Level 1 能力者

5#
 楼主 Author| 发表于 Post on 2021-6-7 17:46:07 | 只看该作者 Only view this author
abin 发表于 2021-6-7 17:39
推测你编译的PLUMED存在效率问题呗。 短时间测试看不出来,
耗时较多的计算可能就有差异了。

好的谢谢您啦

561

帖子

0

威望

3410

eV
积分
3971

Level 5 (御坂)

6#
发表于 Post on 2021-6-8 10:35:32 | 只看该作者 Only view this author
你先check一下两个任务每个SCF cycle的速度有没有差别,以及两个任务每一步SCF的收敛难度是不是不同。如果只用Plumed输出简单的CV,而不做enhanced sampling,速度会不会有区别?

有一种可能是你enhanced sampling之后体系更难收敛了。

17

帖子

0

威望

337

eV
积分
354

Level 3 能力者

7#
发表于 Post on 2022-12-2 22:03:03 | 只看该作者 Only view this author
您好,请问cp2k安装过程中使用--with-plumed=install安装后,是否还需要单独编译plumed

358

帖子

0

威望

2307

eV
积分
2665

Level 5 (御坂)

8#
发表于 Post on 2022-12-3 10:25:31 | 只看该作者 Only view this author
本帖最后由 gog 于 2022-12-3 10:26 编辑
zgdong 发表于 2022-12-2 22:03
您好,请问cp2k安装过程中使用--with-plumed=install安装后,是否还需要单独编译plumed

cp2k调用的是库文件。使用cp2k,就不需要单独编译。如果是其他软件要用plumed,就不清楚 是否还需要单独编译plumed。

17

帖子

0

威望

337

eV
积分
354

Level 3 能力者

9#
发表于 Post on 2022-12-3 11:11:28 | 只看该作者 Only view this author
非常感谢。我想cp2k与plumed联用,但实际使用时提示:Requested to use plumed for metadynamics, but cp2k was not compiled  with plumed support.  我安装时只用了--with-plumed=install,没有向官网那样编译修改arch文件夹的popt文件,因为我理解那个教程是plumed与cp2k分开安装,所以需要单独编译。现在很困惑,到底什么原因?

17

帖子

0

威望

337

eV
积分
354

Level 3 能力者

10#
发表于 Post on 2022-12-3 11:12:15 | 只看该作者 Only view this author
另外,我安装的是openmpi

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-2-20 20:54 , Processed in 0.297397 second(s), 26 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list