从0到1教你如何在Linux系统部署vasp,亲测有效 |
您所在的位置:网站首页 › vasp软件包介绍 › 从0到1教你如何在Linux系统部署vasp,亲测有效 |
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检查所需要的编译环境 加载编译依赖环境: 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支持多线程,主要注意注释部分的内容 # Default precompiler 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.o fft3dlib.oOBJECTS_O1 += fftw3d.o fftmpi.o fftmpiw.oOBJECTS_O2 += fft3dlib.o# For what used 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 the parser libraryCXX_PARS= icpcLLIBS= -lstdc++#### Customize as of this point! Of course you may change the preceding## part of this file as well if you like, but it should rarely be## necessary ...### When compiling on the target machine itself, change this to the# relevant target 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 the VASP-2-Wannier90 interface (optional)#CPP_OPTIONS+= -DVASP2WANNIER90#WANNIER90_ROOT ?= /path/to/your/wannier90/installation#LLIBS+= -L$(WANNIER90_ROOT)/lib -lwannier# For the fftlib 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 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |