计算化学公社

标题: VASP计算效率问题 [打印本页]

作者
Author:
didi_dudu    时间: 2015-9-10 16:38
标题: VASP计算效率问题
最近实验室同时用上了深圳超算和天津超算。其中深圳超算的VASP是我自己编译的 天津超算的VASP是用的别人的。然后发现自己编译的VASP跟天津超算的相比速度差距特别大(肯定不是硬件造成的差距)。自己对VASP编译不怎么懂,只是能勉强编译通过,求教编译时候对makefile还有数据库什么的应该做些什么优化呢? 各种求指教!!!!
PS 深超用的为openmpi-1.4.4, intel/composer_xe_2011_sp1.7.256
PPS 我在我们自己的集群上用openmpi-1.8和 intel/composer_xe_2013.3.163,编译出来的计算速度和深超上也差不多。
附上深圳超算的Makefile 。
  ===========================================
   .SUFFIXES: .inc .f .f90 .F


SUFFIX=.f90
#-----------------------------------------------------------------------
FC=ifort
# fortran linker
FCL=$(FC)

CPP_ =  ./preprocess <$*.F | /usr/bin/cpp -P -C -traditional >$*$(SUFFIX)

#-----------------------------------------------------------------------
CPP_=fpp -f_com=no -free -w0 $*.F $*$(SUFFIX)
#         -DRPROMU_DGEMV  -DRACCMU_DGEMV


OFLAG=-O2 -ip -heap-arrays 64
OFLAG_HIGH = $(OFLAG)
OBJ_HIGH =
OBJ_NOOPT =
DEBUG  = -FR -O0
INLINE = $(OFLAG)


LIB  = -L../vasp.5.lib -ldmy \
     ../vasp.5.lib/linpack_double.o $(LAPACK) \
     $(BLAS)
# options for linking (for compiler version 6.X) nothing is required
LINK    =
#-----------------------------------------------------------------------
# since this version is faster on P4 machines, we recommend to use it
#-----------------------------------------------------------------------
FFT3D   = fft3dfurth.o fft3dlib.o


#=======================================================================
# MPI section
#
# the system we used is an SGI test system, and it is best
# to compile using ifort and adding the option -lmpi during
# linking
#=======================================================================

FC=mpif90
FCL=$(FC)
#-----------------------------------------------------------------------
# additional options for CPP in parallel version (see also above):
# NGZhalf               charge density   reduced in Z direction
# wNGZhalf              gamma point only reduced in Z direction
# scaLAPACK             use scaLAPACK (usually slower on 100 Mbit Net)
#-----------------------------------------------------------------------
CPP    = $(CPP_) -DMPI  -DHOST=\"LinuxIFCmkl\" -DIFC \
     -DCACHE_SIZE=32000 -DPGF90 -Davoidalloc -DNGZhalf \
     -DMPI_BLOCK=8000 \
##     -DRPROMU_DGEMV  -DRACCMU_DGEMV
#-----------------------------------------------------------------------
#----------------------------------------------------------------------- (, 下载次数 Times of downloads: 11)
#BLACS=$(HOME)/archives/SCALAPACK/BLACS/
#SCA_=$(HOME)/archives/SCALAPACK/SCALAPACK
#SCA= $(SCA_)/libscalapack.a  \
#SCA=/home-gg/compiler/intel/composer_xe_2011_sp1.7.256/mkl/lib/intel64/libmkl_scalapack_ilp64.a
SCA=
#-----------------------------------------------------------------------
# libraries for mpi
#-----------------------------------------------------------------------
LIB     = -L../vasp.5.lib -ldmy  \
      ../vasp.5.lib/linpack_double.o $(LAPACK) \
      $(SCA) $(BLAS) \
# FFT: fftmpi.o with fft3dlib of Juergen Furthmueller
#FFT3D   = fftmpi.o fftmpi_map.o fft3dfurth.o fft3dlib.o
# fftw.3.1.2 is slighly faster and should be used if available
#-----------------------------------------------------------------------
# general rules and compile lines
#-----------------------------------------------------------------------
BASIC=   symmetry.o symlib.o   lattlib.o  random.o

作者
Author:
卡开发发    时间: 2015-9-10 17:06
光指定编译器不够的,数学库也有一些影响,Lapack和Blas都要换成intel的,ScaLapack也得换成intel的,fftw可以使用intel或fftw3。测试一下计算结果是否准确,可靠的话可以把Flag改成-O3再看看结果是否可靠。
作者
Author:
didi_dudu    时间: 2015-9-10 17:21
卡开发发 发表于 2015-9-10 17:06
光指定编译器不够的,数学库也有一些影响,Lapack和Blas都要换成intel的,ScaLapack也得换成intel的,fftw ...

这些数学库我也指定intel的编译过,还是跟天津超算那个差距特别大,我现在怀疑是不是其他参数也有影响比如CPP
CPP    = $(CPP_) -DMPI  -DHOST=\"LinuxIFCmkl\" -DIFC \
      -DCACHE_SIZE=32000 -DPGF90 -Davoidalloc -DNGZhalf \
      -DMPI_BLOCK=8000 \
这些的意思我还不懂
Flag改成-O3我还没尝试算过,等会儿有节点空了之后尝试下。   
==================
谢谢!!!!!
作者
Author:
卡开发发    时间: 2015-9-10 17:46
didi_dudu 发表于 2015-9-10 17:21
这些数学库我也指定intel的编译过,还是跟天津超算那个差距特别大,我现在怀疑是不是其他参数也有影响比 ...

这个在手册第三章有详细说明
作者
Author:
平辉正    时间: 2015-9-10 20:07
其实,深圳超算的硬件机器有一点小问题。节点间的通讯做得不太好,而且单个节点内存太小。
作者
Author:
root    时间: 2015-9-13 19:43
多节点并行的吗?天河二号上用他们的mpi比intel mpi或openmpi要快
两个速度相差特别大是多大?几倍?还是几个数量级?
如果是几倍,可能是软件问题,如果是数量级,估计是没走infiniband
作者
Author:
didi_dudu    时间: 2015-9-14 09:20
root 发表于 2015-9-13 19:43
多节点并行的吗?天河二号上用他们的mpi比intel mpi或openmpi要快
两个速度相差特别大是多大?几倍?还是 ...

几倍  差不多8-9倍吧。跑一个电子步,我们要用30分钟,那边3-5分钟就跑完了。




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