从0到1教你如何在Linux系统部署vasp,亲测有效
https://www.intel.cn/content/www/cn/zh/developer/tools/oneapi/toolkits.html#gs.8xfcc9选择需要安装的工具包,需要安装:Base Toolkit和HPC Toolkit两部分。2.intelmpi-2021.3不支持编译多线程版本的vasp,需要cp -rarch/makefile.include.intel mak
VASP全称(Vienna Ab-initio Simulation Package),是维也纳大学Hafner小组开发的进行电子结构计算和量子力学-分子动力学模拟软件包。
vasp是目前主流的第一性原理计算软件,它使用赝势和平面波基函数,可以计算周期性结构材料的结构参数、力学性质、电子结构、光学磁学性质等,也可以对体系进行从头算分子动力学模拟等计算。近半年VASP论文引用量800+。

目前大多数科研机构和学校都是通过购买线上超算资源来使用vasp计算,但如何部署使用软件,对于很多常用Windows系统的初学者来说不太友好。
本教程将详细介绍VASP软件在Linux系统下基本部署方法。接下来一段时间,小编会持续更新系列计算软件相关教程,以及Linux系统系统下使用科学计算软件的常用方法,希望有感兴趣、有意愿学习的朋友多关注公众号《集群计算技术》后续更新内容
安装编译环境Intel oneAPI
进入intel官网
https://www.intel.cn/content/www/cn/zh/developer/tools/oneapi/toolkits.html选择需要安装的工具包,需要安装:Base Toolkit和HPC Toolkit两部分

点击进入下载页面后,选择对应的系统的版本

执行安装脚本 :
sh ./l_BaseKit_p_2024.1.0.596_offline.shsh ./l_HPCKit_p_2024.1.0.560_offline.sh
建议先安装Base toolkit再安装HPC toolkit,如果不需要改配置,就一路默认选项

安装完成:默认安装路径在/opt/intel/oneapi/xxx
source /path/oneapi/setvars.sh
检查所需要的编译环境

安装部署VASP
加载编译依赖环境:
source /path/oneapi/setvars.sh
解压VASP源码包
tar -xvf vasp.6.xx.tgz
进入主目录
cd vasp.6.xx
为当前环境准备makefile.include (通过修改对应的编译配置文件选择适应系统以及编译可选功能)
cp -r arch/makefile.include.intel_omp ./makefile.include

编译选项参考修改
使用intel-oneAPI编译器+MKL数学库+intelmpi实现MPI+openmp支持多线程,主要注意注释部分的内容
# Defaultprecompiler optionsCPP_OPTIONS= -DHOST=\"LinuxIFC\" \-DMPI -DMPI_BLOCK=8000-Duse_collective \-DscaLAPACK \-DCACHE_SIZE=4000 \-Davoidalloc \-Dvasp6 \-Duse_bse_te \-Dtbdyn \-Dfock_dblbuf-D_OPENMP #vasp-6.3.2使用intelmpi-2021.3版本不支持多线程,可以根据实际加载环境版本调整。CPP= fpp -f_com=no -free -w0 $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS)FC= mpiifort -qopenmpFCL= mpiifortFREE= -free -names lowercaseFFLAGS= -assume byterecl -wOFLAG= -O2OFLAG_IN= $(OFLAG)DEBUG= -O0OBJECTS= fftmpiw.o fftmpi_map.o fftw3d.offt3dlib.oOBJECTS_O1+= fftw3d.o fftmpi.o fftmpiw.oOBJECTS_O2+= fft3dlib.o# For whatused to be vasp.5.libCPP_LIB= $(CPP)FC_LIB= $(FC)CC_LIB= iccCFLAGS_LIB= -OFFLAGS_LIB= -O1FREE_LIB= $(FREE)OBJECTS_LIB= linpack_double.o# For theparser libraryCXX_PARS= icpcLLIBS= -lstdc++####Customize as of this point! Of course you may change the preceding## part ofthis file as well if you like, but it should rarely be##necessary ...### Whencompiling on the target machine itself, change this to the# relevanttarget when cross-compiling for another architecture#VASP_TARGET_CPU ?= -xHOST#FFLAGS+= $(VASP_TARGET_CPU) ##amd平台不支持-xHOST,需要注释掉# Intel MKL(FFTW, BLAS, LAPACK, and scaLAPACK)# (Note:for Intel Parallel Studio's MKL use -mkl instead of -qmkl)FCL+= -mklMKLROOT?= path/compilers_and_libraries_2020.1.217/mkl## 修改为echo $MKLROOT的路径LLIBS+= -L$(MKLROOT)/lib/intel64 -lmkl_scalapack_lp64-lmkl_blacs_intelmpi_lp64INCS=-I$(MKLROOT)/include/fftw#HDF5-support (optional but strongly recommended)#CPP_OPTIONS+=-DVASP_HDF5#HDF5_ROOT?= /path/to/your/hdf5/installation#LLIBS+= -L$(HDF5_ROOT)/lib -lhdf5_fortran#INCS+= -I$(HDF5_ROOT)/include# For theVASP-2-Wannier90 interface (optional)#CPP_OPTIONS+= -DVASP2WANNIER90#WANNIER90_ROOT?= /path/to/your/wannier90/installation#LLIBS+= -L$(WANNIER90_ROOT)/lib -lwannier# For thefftlib library (hardly any benefit in combination with MKL's FFTs)#FCL= mpiifort fftlib.o -qmkl#CXX_FFTLIB= icpc -qopenmp -std=c++11 -DFFTLIB_USE_MKL-DFFTLIB_THREADSAFE#INCS_FFTLIB= -I./include -I$(MKLROOT)/include/fftw#LIBS+= fftlib
make DEPS=1 -j24 all
并行编译gam,std,ncl三个版本。
非Intel平台的优化和注意事项
-
AMD平台不支持-xHOST;-xHOST是Intel 编译器针对Intel处理器增加的编译优化选项.
perf top 查看指令集使用情况图中显示调用了AVX2指令集

-
intelmpi-2021.3不支持编译多线程版本的vasp。报错信息如下。如需编译多线程版本,需要更换intelmpi版本。

-
VASP使用MKL库完成其中的数学运算,但该库会通过内部函数检测是否为Intel处理器,在Intel处理器上MKL库的加速效果更好。分析显示MKL使用函数mkl_serv_intel_cpu_true来检测它是否在处理真正的Intel CPU。
在intel mkl 2020版本之前可以通过使用环境变量MKL_DEBUG_CPU_TYPE=5可以使numpy运算速度再加快一些,但后续版本移除了这个变量。我们可以用自己的函数来代替它:
intmkl_serv_intel_cpu_true() {return 1;}
并向其编译为共享库:
$ gcc -shared -fPIC -o libisintel.so isintel.
libisintel.so是识别cpu处理器型号的函数,AMD平台上可以加载这个库,替换掉MKL中自带的函数,把AMD识别为Intel,以更好发挥MKL数学库的计算能力。
export LD_PRELOAD=/PATH/libisintel.so
编译结果
可执行文件生成目录:
cd vasp-6.x.x/bin

参考引用:
1. https://www.vasp.at/wiki/index.php/The_VASP_Manual
2. https://www.intel.cn/content/www/cn/zh/developer/tools/oneapi/toolkits.html
更多推荐



所有评论(0)