2.3.1 提交计算任务#

(1)找课题组的师兄师姐或者超算管理员要一个用于向服务器提交VASP计算任务的脚本。

一般用VASP做DFT计算时,都是借助超算服务器实现(个人电脑算力不太够),所以需要一个脚本来告诉服务器,我需要调用多少算力(节点、核数),做什么任务的计算(运行VASP或者QE)。以下是PBS作业管理系统的提交脚本示意:

#!/bin/bash
#SBATCH --output=%j.out
#SBATCH --error=%j.err
#SBATCH -N 1
#SBATCH -p small_s
#SBATCH --ntasks-per-node=32
#SBATCH --job-name=vasp
#SBATCH -t 48:00:00
#SBATCH --mem-per-cpu=4G

module load oneapi/2023.2
module load gcc/12.1
#source /public/software/intel/oneapi2021/setvars.sh

vasp=/public/software/vasp/vasp-6.4.1-gam-ncl-std/bin/vasp_std
#vasp=/public/software/vasp/vasp-6.4.1-gam-ncl-std/bin/vasp_gam
#vasp=/public/software/vasp/vasp-6.4.1-gam-ncl-std/bin/vasp_ncl

mpirun -np $SLURM_NTASKS $vasp > result

前两个红框意思是:调用用1个节点,32个核。这个文件直接决定了做VASP计算时可以调用的cpu计算资源(核数和内存),核数越多一般内存越大。核数设置一般需要经验,常见服务器单节点可以用的核数一般是20/24/32/48/64这样的数字,需要咨询服务器的管理员。在不跨节点的情况下,一般核数越多,计算速度越快,并且可以调用的内存也越多。所以对于大体系(原子数多)或者类似杂化泛函的计算,建议使用更多的核数。常规的计算任务,核数接近原子数是比较有性价比的选择。不同服务器的情况不一样,因此对于初学者来说,该脚本中涉及的的节点、核数选取请务必咨询课题组师兄/师姐或者超算工程师。

后两个红框意思是:运行vasp_std程序开始计算,并把主要结果输出到result文件中。

注意:当你有了任务提交脚本之后,你需要确保前面的四个文件INCAR,POSCAR,KPOINTS和POTCAR,以及任务脚本一共4+1个文件处于同一目录下

(2)根据任务管理系统对应的提交命令,提交任务。

咨询课题组师兄师姐相关的任务提交命令。不同服务器可能有不同的任务管理系统,常见的三种任务管理系统以及对应的任务提交命令如下:

SLURM任务管理系统,sbatch vasp641.slurm

PBS任务管理系统,qsub vasp641.pbs

LSF 任务管理系统,bsub < vasp641.sub (多了个< 需要在键盘英文模式下输入)

任务提交脚本文件名字以及后缀不重要,随个人喜好即可。

(3)任务提交之后,你需要查看任务是否在排队,还是在计算中,或是被异常中止。

对于SLURM任务系统,通过squeue查看任务情况;

对于PBS任务管理系统,通过qstat查看;

对于LSF任务管理系统,通过bjobs查看;

请自行网上查询对应的任务管理系统更详细的命令用法。