本帖最后由 gog 于 2021-1-31 17:23 编辑
原贴在Redhat7.9服务器系统中,使用最新版 VTST-180,准确定位main.F、chain.F 添加或修改代码的行数并编译成功;生成的可执行文件支持OMP计算。
本贴子基于未配置GPU的Intel志强(Xeon)铂金CPU、Redhat-7.9、 GCC-4.8.5、集成磁性材料计算的关键词、NEB插件,给出安装测试报告。具体步骤如下:
1、Intel parallel studio xe 2020.4编译和安装 切换到安装文件夹,输入 sh install_GUI.sh回车,具体组件,根据硬件情况和自己需求勾选,其中 ifort、mkl数学库和mpi并行库为必选项。
加载intel全家桶 source /**/intel/parallel_studio_xe_2020/psxevars.sh intel64 切换到fftw3xf文件夹,编译基于intel的fftw数学库 cd /**/intel/compilers_and_libraries_2020.4.304/linux/mkl/interfaces/fftw3xf make libintel64
2、VASP编译
a.下载VTST脚本 http://theory.cm.utexas.edu/vtsttools/ 此为外链。
需要将这些文件复制到src目录中:
修改src/main.F源码: 将(第3450行) CALL CHAIN_FORCE(T_INFO%NIONS,DYN%POSION,TOTEN,TIFOR, &
LATT_CUR%A,LATT_CUR%B,IO%IU6)变为(注意后两行): CALL CHAIN_FORCE(T_INFO%NIONS,DYN%POSION,TOTEN,TIFOR, &
TSIF,LATT_CUR%A,LATT_CUR%B,IO%IU6)
! LATT_CUR%A,LATT_CUR%B,IO%IU6)修改编译配置src/.objects,在chain.o前(大概第92、93行)添加如下内容:注意 “\”后不能有空格
bfgs.o dynmat.o instanton.o lbfgs.o sd.o cg.o dimer.o bbm.o \ fire.o lanczos.o neb.o qm.o opt.o \
b.拷贝及修改编译脚本
切换到vasp安装文件夹,查看脚本。
拷贝arch下的intel_omp cp ./arch/makefile.include.linux_intel_omp ./makefile.include 此贴使用支持omp的脚本编译,如需编译支持GPU的,复制./arch/makefile.include.linux_intel中 # GPU_Staff部分适当修改以匹配GPU型号。 修改makefile.include
计算优化级别
如果步进不算高,就使用默认即可,针对intel CPU, FFLAGS中添加 -heap-arrays 64 OFLAG 默认是 -O2,,步进比较高的CPU(市面步进最高的cpu,有step=7)可尝试到-O3级别,以支持avx2、avx512加速计算。
OBJECTS添加基于intel的级数展开与收敛的傅里叶变换FFTW数学库 OBJECTS = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o \
${MKLROOT}/interfaces/fftw3xf/libfftw3xf_intel.a
输入 "shift+:" ".x!" 回车保存。
加载intel全家桶,输入which ifort / which mpiifort / which mpirun查看加载是否成功,$MKLROOT 检查MKLROOT路径
接着就是 make,如果之前有编译失败,记得 make veryclean。
最终,成功编译出与VASP5一样的vasp_std、vasp_gam、vasp_ncl(对应STD、GAMMA和NCL三个)。尽管没有进行GPU模块的设置,VASP-6.1依旧会自动尝试编译GPU并报错“cuda error”。
|