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