VASP5.4编译过程说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
V ASP5.4编译
1.编译器安装:parallel_studio_xe_2011_sp1_update2_intel64.tgz
解压安装即可,./install.sh:安装中使用的激活码为L3FN-2VRGKX7K
安装完设置环境变量:
For csh/tcsh:
$ source install-dir/bin/compilervars.csh intel64
For bash:
$ source install-dir/bin/compilervars.sh intel64
测试是否成功:which icc
/opt/intel/composer_xe_2011_sp1.9.293/bin/intel64/icc
which ifort
/opt/intel/composer_xe_2011_sp1.9.293/bin/intel64/ifort
2.安装openmpi:openmpi-1.4.5.tar.gz
解压,然后输入./configure CC=icc CXX=icpc F77=ifort FC=ifort 指定编译器之后依次执行make,make install
安装完成后,加入如下三个环境变量:
export PATH=/usr/local/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/lib/openmpi:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
具体路径找自己的,其中少了第三个路径的话可以编译文件,但是运行编译后的文件会说找不到库函数。建议安装完成之后进入解压文件夹(不是安装目录)下的example文件夹中测试程序,输入make之后会自动编译,完成之后输入mpirun –np 8 hello_f90,如果安装正确,会出现:
Hello, world, I am 0 of 8
Hello, world, I am 1 of 8
Hello, world, I am 2 of 8
Hello, world, I am 3 of 8
Hello, world, I am 4 of 8
Hello, world, I am 5 of 8
Hello, world, I am 6 of 8
Hello, world, I am 7 of 8
8是服务器的cpu数量。很多人没有经过这一步测试就直接去编译V ASP,结果两个软件的错误都堆在了一起,到底哪一步错了都不知道。
3.VASP.lib编译
编译库文件, 简单, 直接使用makefile.linux_ifc_P4然后直接make就行。.其中将makefile.linux_ifc_P4中下面三行按照自己的路径改一下即可:
CPP = /opt/intel/composer_xe_2011_sp1.9.293/bin/intel64/icc -E -P -C $*.F >$*.f CC= /opt/intel/composer_xe_2011_sp1.9.293/bin/intel64/icc
FC= /opt/intel/composer_xe_2011_sp1.9.293/bin/intel64/ifort
可能会有错误,不用管,只要得到libdmy.a和linpack_double.o, 即成功
注意:网上帖子有编译GOTOBLAS的步骤,我使用GotoBLAS2-1.13.tar.gz 编译不成功,但是不影响编译V ASP。所以认为可以省略此步。
4.编译mkl
/opt/intel/mkl/interfaces/fftw3xf
make libem64t compiler=intel
完成之后在该目录下得到一个新文件和文件夹。
5.vasp主程序编译:vasp.5.4.1.24Jun15.tar.gz
# tar -zxvf vasp.5.4.1.24Jun15.tar.gz
# cd vasp.5.4.1
# cp arch/makefile.include.linux_intel ./ makefile.include 然后vi makefile.include修改其中的几行:
第一处按手册上说linux 下最好把-DCACHE-SIZE=4000 改成16000
第二处把-DHOST=\"IFC91_ompi\" 也相应改为-DHOST=\"IntelIFC\",虽然这个具体什么意思不太清楚,但感觉还是和openmpi 有关的
第三处,增加一行MKLROOT = /opt/intel/mkl
其他都不动,然后make all
编译完成后,最终在~/vasp/vasp.5.4.1/bin 目录下生成vasp_gam、vasp_ncl、vasp_std 三个可执行文件。然后设置环境变量:
export PATH=$PATH:/soft/vasp/vasp.5.4.1/bin
贴上我成功编译的makefile.include内容:
# Precompiler options
CPP_OPTIONS= -DMPI -DHOST=\"IntelIFC\" -DIFC \
-DCACHE_SIZE=16000 -DPGF90 -Davoidalloc \
-DMPI_BLOCK=8000 -DscaLAPACK -Duse_collective \
-DnoAugXCmeta -Duse_bse_te \
-Duse_shmem -Dtbdyn
CPP = fpp -f_com=no -free -w0 $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS)
FC = mpif90
FCL = mpif90 -mkl
FREE = -free -names lowercase
FFLAGS = -assume byterecl
OFLAG = -O2
OFLAG_IN = $(OFLAG)
DEBUG = -O0
MKLROOT = /opt/intel/mkl
MKL_PATH = $(MKLROOT)/lib/intel64
BLAS =
LAPACK =
BLACS = -lmkl_blacs_openmpi_lp64
SCALAPACK = $(MKL_PATH)/libmkl_scalapack_lp64.a $(BLACS)
OBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o \
$(MKLROOT)/interfaces/fftw3xf/libfftw3xf_intel.a
INCS =-I$(MKLROOT)/include/fftw