cndaqiang Web Linux DFT

Ubuntu VASP安装和运行

2018-01-09
cndaqiang
DFT
RSS

建议看此文Intel Parallel Studio XE 编译VASP更具有普遍性





这两天安装vasp可要被折腾死了,虽然组里服务器上有vasp,可是自己还没有进行计算的经验,在服务器上乱提交作业,被发现就不好了,还是在自己服务器上学习更放心大胆一些。
这几天尝试了,好多个版本的编译器,vasp编译过4.6,5.3都失败了,最后发现这个帖子[VASP] 教你从头编译vasp-5.4.1提供的2011版的icc,ifort,icpc编译vasp5.4没有问题,成功在台式机,云服务器,windows10上bash编译完成.

需要的软件

编译器,fftw,openmpi,也可以去相应网站下载
makefile.include,从vasp.5.4.1/arch中获得并修改
vasp.5.4,vasp.5.lib源码,百度可搜,请购买正版

总述

安装VASP主要需要这几个部分

  • 编译环境,编译器
    这里使用linux+ifc(intel icc ifort)
    intel的parallel_studio_xe编译器包含MKL,MPI,
    网上和intel网站有parallel_studio_xe_2013和2015的安装成功记录,我没有成功,最后使用2011版的l_ccompxe_2011 l_fcompxe_2011
    使用其他编译器也可以,要选择合适的makefile文件并修改正确
  • 并行计算mpi
    intel编译器包含mpi,也可使用openmpi
    最后使用openmpi
  • 数学库BLACS,LAPACK
    有Intel的MKL,GotoBlas,ATLAS
    这次使用Intel的MKL
  • FFT
    vasp自带fft,也使用额外的fftw
    最后使用fftw

理解

编译无需root操作,个人将所有软件安装在自己目录里也可以
编译vasp时,在makefile文件中设置编译器,MKL,MPI,FFT,
因此,可以在服务器上安装多个版本的编译器,MKL,MPI,FFT,选则合适的makefile,修改makefile中相应的目录即可
仅编译安装vasp并不需要很大的计算量,对材料的计算可能需要很大
在实验室台式机上编译intel_2011和vasp5.4正常,尝试在1核1G内存腾讯云服务器编译失败,查看后台内存占用接近峰值时编译失败,增加虚拟内存后,编译正常进行,如图。所以我之前用parallel_studio_xe_2013/2018和vasp5.4/5.3编译失败的原因很大可能是服务器内存不够了

安装

安装环境

实验室的台式机
ubuntu server 16.04.3
Intel(R) Core(TM) i5-3450 CPU @ 3.10GHz
6G内存
这次是安装在单用户目录下面,而且过程都是编译,感觉与linux的哪个发行版关系不大
另外,1核1G内存2G交换分区腾讯云主机也成功安装
windows10上的bash 8G内存 Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz,也安装完成
windows10上的bash安装注意

  • 建议关闭windows defender后安装
  • intel编译器安装过程较卡,耐心等待
  • 最后编译vasp大约用时30分钟

安装依赖

直接安装l_ccompxe_时提示缺少依赖,安装下面包后解决(下面的包应该是安装多了)

sudo apt update
sudo apt-get install gfortran
sudo apt-get install build-essential
sudo apt-get install libstdc++5
sudo apt-get install lib32stdc++6
sudo apt-get install libc6-dev-i386
sudo apt-get install g++-multilib

另外,windows10的bash还需安装

sudo apt install flex
sudo apt install texinfo

intel编译器

安装

解压安装icc

tar xzvf l_ccompxe_2011.6.233
cd l_ccompxe_2011.6.233/
./install

安装时,选择单用户安装(root用户安装也可以,会安装到/opt/intel),使用lic文件激活,其他保持默认
文件最终安装在用户目录/intel中,如/home/cndaqiang/intel,以后编译设置里面的/home/cndaqiang/intel替换为你对应的目录即可

同理安装l_fcompxe_2011.6.233

添加环境变量

是为了输入ifort等命令直接运行,不添加环境变量则要在makefile里指明编译器的位置如FCC=/目录.../ifort
编辑~/.bashrc,添加以下内容,注意替换相关目录

source /home/cndaqiang/intel/composerxe/bin/compilervars.sh intel64
export PATH=/home/cndaqiang/intel/composerxe/bin:$PATH
export LD_LIBRARY_PATH=/home/cndaqiang/intel/composerxe/mkl/lib/intel64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/home/cndaqiang/intel/lib/intel64:$LD_LIBRARY_PATH

编译生效

source ~/.bashrc 

环境变量配置成功,直接输入which icc ifort icpc会返回命令所在路径

openmpi安装

编译安装

使用openmpi-1.6.5,可去其网站下载

tar xzvf openmpi-1.6.5.tar.gz
cd openmpi-1.6.5

生成makefile文件

./configure --prefix=安装目录 CC=icc CXX=icpc F77=ifort FC=ifort
  • 安装目录为编译后openmpi安装到的目录
    我设置为/home/cndaqiang/soft/openmpi之后注意替换
  • CC=icc CXX=icpc F77=ifort FC=ifort为使用哪种编译器编译openmpi

没有报错后,编译安装

make -j4
#-j4为使用4核安装,我的电脑只有4核,尽量使用多的核编译会快
make install

添加环境变量

编辑~/.bashrc,添加以下内容,注意替换相关目录

export PATH=/home/cndaqiang/soft/openmpi/bin:$PATH
export LD_LIBRARY_PATH=/home/cndaqiang/soft/openmpi/lib:$LD_LIBRARY_PATH
export MANPATH=/home/cndaqiang/soft/openmpi/share/man:$MANPATH

编译生效

source ~/.bashrc 

环境变量配置成功,直接输入which mpif90会返回命令所在路径

fftw安装

编译安装

使用fftw-3.3.4,可去其网站下载
编译同openmpi

tar xzvf fftw-3.3.4.tar.gz 
cd  fftw-3.3.4
./configure --prefix=安装目录 --enable-mpi
make -j4
make install
  • 安装目录我设置为/home/cndaqiang/soft/fftw之后注意替换
  • 帖子中说一定要加--enable-mpi否则在安装好的lib文件夹内无法生成此次编译VASP所必须的libfftw3_mpi.a文件

编辑~/.bashrc,添加以下内容,注意替换相关目录

export PATH=/home/cndaqiang/soft/fftw/bin:$PATH
export LD_LIBRARY_PATH=/home/cndaqiang/soft/fftw/lib:$LD_LIBRARY_PATH

编译生效

source ~/.bashrc 


准备工作做完了,开始编译vasp

编译VASP

与之前vasp版本编译的不同,不需进入vasp.5.lib进行编译

cp makefile.include vasp.5.4.1
cd vasp.5.4.1
vi makefile.include

修改makefile.include

  • 28行设置MKL路径MKLROOT =/home/cndaqiang/intel/mkl
  • 33行只使用openmpi BLACS =-L$(MKL_PATH) -lmkl_blacs_openmpi_lp64
  • 38行设置fftw OBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o /home/cndaqiang/soft/fftw/lib/libfftw3_mpi.a
  • 39行设置fftw INCS =-I/home/cndaqiang/soft/fftw/include

开始编译,不建议加-jn命令,容易出错

make all

大概30分钟左右会完成编译,在bin文件夹中会生成三个可执行文件

cndaqiang@ubuntu:~/VASP-5.4/vasp.5.4.1$ ls ./bin
vasp_gam  vasp_ncl  vasp_std
  • vasp_gam /gamma版本的vasp
  • vasp_std /标准版本的vasp
  • vasp_ncl /非线性版本的vasp

vasp_gam vasp_ncl vasp_std三个文件夹里面分别有一个可执行程序vasp

添加环境变量

把VASP添加到PATH后,可以通过直接输入vasp运行
例如我,新建了一个文件夹,里面创建三个软连接,分别指向三个版本的vasp,再将该目录设置为PATH目录,通过vasp_gam,vasp_ncl,vasp_std分别运行三个版本的vasp

mkdir ~/soft/vasp
cd ~/soft/vasp
ln -s /home/ubuntu/VAPS_install/vasp5.4/vasp.5.4.1/build/gam/vasp vasp_gam
ln -s /home/ubuntu/VAPS_install/vasp5.4/vasp.5.4.1/build/ncl/vasp vasp_ncl
ln -s /home/ubuntu/VAPS_install/vasp5.4/vasp.5.4.1/build/std/vasp vasp_std

~/.bashrc中添加

export PATH=/home/ubuntu/soft/vasp:$PATH

编译~/.bashrc

source ~/.bashrc

或使用完整路径,如/home/ubuntu/VAPS_install/vasp5.4/vasp.5.4.1/build/gam/vasp也可以

简单运行vasp

生成输入文件->vasp->输出文件

运行

新建一个文件夹,里面放入输入文件(第一次可先搜索vasp实例得到下面的文件,之后再慢慢看每个文件的具体内容和编写方法),命名如下

INCAR  KPOINTS  POSCAR  POTCAR

直接运行(这里的vasp_std是我之前添加的快捷命令,可以用/home/ubuntu/VAPS_install/vasp5.4/vasp.5.4.1/build/std/vasp替换)

vasp_std

生成输出文件,如

ubuntu@VM-10-194-ubuntu:~/work/1_1_O_atom$ ls
CHG     CONTCAR  EIGENVAL  KPOINTS  OUTCAR  POSCAR  REPORT       WAVECAR
CHGCAR  DOSCAR   INCAR     OSZICAR  PCDAT   POTCAR  vasprun.xml  XDATCAR

可以将自己的运算结果和Materials Project进行对比

输入输出文件

输入输出文件的编写规则和vasp使用的相关教程资源就非常多了,不在这里整理了

后记

参考的教程太多了,恕不把每个链接放上了,仅再此感谢小木虫csdn计算化学公社等优秀的网友
以后有时间,再整理一次makefile里面的参数对应哪些,串行,并行,其他mkl库,fftw等,先这样用着吧,先去学习vasp了


本文首发于我的博客@cndaqiang.
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!


目录

访客数据