vasp5.3.5 安装教程
制作者:甄江苏(湘潭大学材料科学与工程学院)
1. 安装 Intel 编译器:
。。。。。。。。
然后添加环境变量,在/etc/profile 文件中最下面插入:
source /opt/intel/composer_xe_2015.2.164/bin/ifortvars.sh intel64
source /opt/intel/composer_xe_2015.2.164/mkl/bin/mklvars.sh intel64
然后在终端执行:
[root]# source /etc/profile
这里提供的安装包会把其他的 Intel 的组件包括并行编译器也安装上,但是后面
不 用 它 的 mpirun 这 个 命 令 , 而 是 用 mpich 的 mpirun 命 令 , 所 以 进 入
/opt/intel/composer_xe_2015.2.164/文件夹,把文件夹 mpirt 改名,让它的路径失
效,比如改成 mpirt11111。
此外,安装完后后,最好把 licence 文件放到安装目录里,Intel 编译器指定的 license
存放目录之一是/opt/intel/composer_xe_2015.2.164/license/这个文件夹,这个文件
夹要自己新建,然后把 license 文件拷贝进去即可,不然的话,对于共享此软件
的其他节点来说,会找不到 license。
然后进入/opt/intel/composer_xe_2015.2.164/mkl/interfaces/fftw3xf/文件夹,执行:
[root]# make libintel64
将会生成一个名为 libfftw3xf_intel.a 的静态库文件,用于后面 vasp 的链接。
2. 安装 openmpi:(openmpi 总是出问题,无法多节点并行,原因不明,所以建
议用后面的 mpich)
进入 openmpi 解压目录,执行:
[root]# ./configure --prefix=/opt/openmpi CC=icc CXX=icpc F77=ifort FC=ifort
[root]# make all install
然后添加环境变量,在/etc/profile 中添加:
export PATH=$PATH:/opt/openmpi/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/openmpi/lib
export MANPATH=$MANPATH:/opt/openmpi/share/man
然后在终端执行:
[root]# source /etc/profile
3. 安装 mpich3:
将 mpich3 压缩包解压,然后进入,执行:
[root]# ./configure --prefix=/opt/mpich3 --enable-fortran=all --enable-cxx
F77=ifort FC=ifort FCFLAGS="-O2 -xHost" FFLAGS="-O2 -xHost" \
CC=icc CXX=icpc CFLAGS="-O2 –xHost" CXXFLAGS="-O2 -xHost" \
--enable-threads=multiple --enable-fast=all --enable-mpit-pvars=all
[root]# make -j 8
[root]# make install
然后添加环境变量:
export PATH=$PATH:/opt/mpich3/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/ mpich3/lib
然后在终端执行:
[root]# source /etc/profile
注意,安装完并行库(不论是 openmpi 还是 mpich)后,都要设置一下:
在/etc/目录中新建一个名为 mpd.conf 的文本文件,在里面填写上:
MPD_SECRETWORD=mr45-j9z
然后保存退出,给这个文件加上权限:
[root]# chmod 600 /etc/mpd.conf
4. 安装 vasp(包含 NEB)
将 vasp 的两个压缩包放到一个文件夹中(比如命名为 VASP_Install),并将这两个
压缩包解压,会得到名为 vasp.5.3 和 vasp.5.lib 两个目录,然后进入 vasp.5.lib 文
件夹中,找到名为 makefile.linux_ifc_P4 的文件,打开修改:
将“FC=ifc”改为“FC=ifort”,然后保存退出,并在终端执行:
[root]# make -f makefile.linux_ifc_P4
这将会生成一个名为 libdmy.a 的文件
然后编译 vasp 主文件
首先进入网站:http://theory.cm.utexas.edu/vtsttools/download.html
下载两个 VTST 相关的压缩包(下图显示的两个)
然后解压
或者直接在终端执行:
svn co http://theory.cm.utexas.edu/svn/vtsttools
这将会直接将这两个文件的解压版本和另外一个 doc 文件夹下载到 linux 本地的
vtsttools 文件夹下
然后将 vtstcode 目录中的所有文件拷贝到 vasp.5.3 目录中,如果有覆盖情况,则
选择覆盖
修改 vasp.5.3 目录中的 main.F 文件,定位到文件中“CHAIN_FORCE”这行,在
“LATT_CUR%A”前面加上“TSIF, ”如图所示:
然后保存退出。
然后将 vasp.5.3 目录中的 makefile.linux_ifc_P4 文件重命名为 makefile,并修改内
容:
这个文件的上半部分是串行的配置,下半部分是并行的配置(但上半部分某些配
置是全局的),我们主要修改下半部分,上半部分有小改动(行号可能和你们的不
一样,但是大概就在那个位置):
将 62, 64, 79 和 98 行用“#”注释掉:
在 108 行后面加上“-heap-arrays 64”,而 123 行的 OFLAG 后面可以修改可以不
修改,就是优化用的。
将 147 行前的“#”去掉,并把这一行最后面的 “-lguide” 改为 “-mkl=sequential”,
然后将 149 行和 182 行用“#”注释掉
将 205 行和 206 行的“#”去掉,并在 206 行后面加上“-mkl=sequential”,然后
将 223, 224, 225 和 226 行的“#”去掉,并在 225 行后面添加一个“\”(注意,斜
杠后面不能有任何字符,要直接换行),然后将 234 和 235 行的“#”去掉,此处
注意,如果采用的是 mpich 版本的并行库,则要把“BLACS=”那行后面改为“-
lmkl_blacs_intelmpi_lp64”。最后将 241, 242 和 243 行的“#”去掉(LIB 那部分)。
此外,如果需要计算 spin-orbit coupling (SOC)(自旋-轨道耦合 ),则要把“ -
DNGZhalf”这个参数去掉(所以可以编译出两个版本的 vasp)。最后,可以将 CPP
中的-DCACHE_SIZE 的数值改为 12000,貌似会加快计算速度。
将 257 和 258 行的“#”去掉。然后就是修改*.o 文件了,在“chain.o”前面加上
如下图所示的*.o 文件,注意结尾处的“\”字符后面不能有空格,也就是说输入
“\”后就立即回车,到下一行继续输入(但是行的开始处是可以加空格的,为了
美观!)
最后,将下面这里所有的“-lowercase”改成“lowercase”并在前面都加上“-names”,
最后在“(-O3 seems to work)”下面的优化项都改成“-O3”
最后保存退出,然后让终端进入 vasp.5.3 中,执行:
[root]# make
如果编译不报错,20 分钟左右就会在此目录中生成一个名叫 vasp 的可执行文件,
我们只需要这个文件,可以把这个文件拷贝到想要拷贝到的地方,如果想要重新
修改 makefile 文件,则修改后要在终端执行:
[root]# make clean
以清除先前的文件
测试的话,直接在单个机器上测试就行,可以把编译得到的可执行文件放到某个
目录下,并把三个 CAR 文件和一个 KPOINTS 文件放进来,然后进入非 root 用
户,在此文件夹下执行(8 表示 8 个核):
mpirun -n 8 ./vasp
如果顺利运行,则编译成功!!!