Linux CentOS7.9 VASP5.4.4 SLURM 安装运行

82 阅读1分钟

参考环境配置VASP的最简单的安装方法(含全程视频演示) - 第一性原理 (First Principle) - 计算化学公社 (keinsci.com)

解压

[root@mgt BIOVIA_test]# cd /share/
[root@mgt share]# tar -zxf vasp.5.4.4.tar.gz 

编译环境文件

[root@mgt vasp.5.4.4]# cp /share/vasp.5.4.4/arch/makefile.include.linux_intel /share/vasp.5.4.4
[root@mgt vasp.5.4.4]# ls
arch  bin  build  makefile  makefile.include.linux_intel  README  src
[root@mgt vasp.5.4.4]# mv makefile.include.linux_intel makefile.include
[root@mgt vasp.5.4.4]# ls
arch  bin  build  makefile  makefile.include  README  src

Intel CPU 修改 makefile.include 加上-xhost

AMD 会报错不加

这样编译器会使得编译出的程序能够利用当前机子CPU能支持的最高档次的指令集以加速计算

image.png

AMD参考在AMD机器上安装DFT计算软件VASP.6.2.0简明教程 - 第一性原理 (First Principle) - 计算化学公社 (keinsci.com)

AMD可手动查询自己支持的指令集并修改: 如:

OFLAG      = -O2 -xCORE-AVX2

环境变量

编译完成后,在vasp.5.4.4/bin目录下出现了vasp_gam、vasp_ncl、vasp_std三个可执行文件,分别是Gamma only版,非共线版和标准版。

[root@mgt bin]# ls
vasp_gam  vasp_ncl  vasp_std

路径变量,可加入~/.bashrc中,重新登陆生效

export PATH=$PATH:/share/vasp.5.4.4/bin

测试

创建一个新文件夹用于测试,然后将IN-short 改名为INCAR,用4核运行

[root@mgt ~]# cd /share/vasp.5.4.4
[root@mgt vasp.5.4.4]# mkdir test_vasp_std && cd test_vasp_std
[root@mgt test_vasp_std]# ls
benchmark.Hg.tar.gz
[root@mgt test_vasp_std]# tar -zxf benchmark.Hg.tar.gz 
[root@mgt test_vasp_std]# cd vasp.Hg/
[root@mgt vasp.Hg]# mv IN-short INCAR
[root@mgt vasp.Hg]# mpirun -np 4 vasp_std

结果

running on    4 total cores
 distrk:  each k-point on    4 cores,    1 groups
 distr:  one band on    1 cores,    4 groups
 using from now: INCAR     
 vasp.5.4.4.18Apr17-6-g9f103f2a35 (build Apr 18 2024 17:19:50) complex          
  
 POSCAR found :  1 types and      50 ions
 scaLAPACK will be used
 LDA part: xc-table for Ceperly-Alder, standard interpolation

 ----------------------------------------------------------------------------- 
|                                                                             |
|           W    W    AA    RRRRR   N    N  II  N    N   GGGG   !!!           |
|           W    W   A  A   R    R  NN   N  II  NN   N  G    G  !!!           |
|           W    W  A    A  R    R  N N  N  II  N N  N  G       !!!           |
|           W WW W  AAAAAA  RRRRR   N  N N  II  N  N N  G  GGG   !            |
|           WW  WW  A    A  R   R   N   NN  II  N   NN  G    G                |
|           W    W  A    A  R    R  N    N  II  N    N   GGGG   !!!           |
|                                                                             |
|      Your FFT grids (NGX,NGY,NGZ) are not sufficient for an accurate        |
|      calculation.                                                           |
|      The results might be wrong                                             |
|      good settings for NGX NGY and  NGZ are                                 |
|                        32  32  and  32                                      |
|     Mind: This setting results in a small but reasonable wrap around error  |
|     It is also necessary to adjust these  values to the FFT routines you use|
|                                                                             |
 ----------------------------------------------------------------------------- 

 POSCAR, INCAR and KPOINTS ok, starting setup
 FFT: planning ...
 WAVECAR not read
 entering main loop
       N       E                     dE             d eps       ncg     rms          rms(c)
RMM:   1    -0.514508049955E+05   -0.51451E+05   -0.13177E+05   316   0.780E+02
RMM:   2    -0.527604960133E+05   -0.13097E+04   -0.23677E+04   316   0.234E+02
RMM:   3    -0.529744058124E+05   -0.21391E+03   -0.41278E+03   316   0.116E+02
RMM:   4    -0.531145778668E+05   -0.14017E+03   -0.15768E+03   316   0.784E+01
RMM:   5    -0.531789246722E+05   -0.64347E+02   -0.67159E+02   316   0.452E+01
RMM:   6    -0.532265055772E+05   -0.47581E+02   -0.48010E+02   720   0.309E+01
RMM:   7    -0.532330902720E+05   -0.65847E+01   -0.94349E+01   762   0.919E+00    0.871E+00
RMM:   8    -0.532325872571E+05    0.50301E+00   -0.56444E+01   696   0.112E+01    0.218E+00
RMM:   9    -0.532327666665E+05   -0.17941E+00   -0.66901E+00   700   0.233E+00    0.112E+00
RMM:  10    -0.532327437302E+05    0.22936E-01   -0.95542E-01   697   0.881E-01    0.401E-01
RMM:  11    -0.532327416431E+05    0.20871E-02   -0.16667E-01   695   0.455E-01    0.106E-01
RMM:  12    -0.532327436402E+05   -0.19971E-02   -0.34035E-02   695   0.145E-01    0.467E-02
RMM:  13    -0.532327437229E+05   -0.82713E-04   -0.53240E-03   513   0.507E-02
   1 F= -.53232744E+05 E0= -.53232710E+05  d E =-.677966E-01

sbatch脚本

#!/bin/sh  
# 告诉操作系统使用 /bin/sh(shell)来执行此脚本。
#SBATCH -N 1  
# 向 SLURM 请求 1 个计算节点。
#SBATCH -n 1  
# 请求总共 1 个处理器核心。
#SBATCH --ntasks-per-node=1  
# 每个节点上的任务数设置为 1。
#SBATCH -w c66  
# 指定运行此作业的特定计算节点 "c66"。
#SBATCH --output=%j.out 
# 将标准输出重定向到一个名为 “作业ID.out” 的文件,%j 会被替换为实际的作业ID。
#SBATCH --error=%j.err  
# 将标准错误重定向到一个名为 “作业ID.err” 的文件,%j 会被替换为实际的作业ID。
source /share/intel/parallel_studio_xe_2020.4.912/bin/psxevars.sh intel64  # 初始化并设置 Intel Parallel Studio XE 环境变量,针对64位架构。
export PATH=/share/vasp.5.4.4/bin:$PATH  
# 将VASP的可执行文件目录添加到环境变量PATH,使之可以直接执行vasp_std。
mpirun -np $SLURM_NTASKS vasp_std  
# 使用mpirun启动VASP程序,-np 选项 SLURM 默认会分配正确的核心数。

无注释版

#!/bin/sh
#SBATCH -N 1
#SBATCH -n 1
#SBATCH --ntasks-per-node=1
#SBATCH --output=%j.out
#SBATCH --error=%j.err
source /share/intel/parallel_studio_xe_2020.4.912/bin/psxevars.sh intel64
export PATH=/share/vasp.5.4.4/bin:$PATH
mpirun -np $SLURM_NTASKS vasp_std