国科智算提交VASP任务 今天QQ群里,有人问怎么在国科智算的超算中心提交VASP的任务。本着一言不合就写教程的态度,这一节我们就看下VASP的任务是怎么提交的。提交任务的脚本见群文件:vasp_qiangli.sh
。下载后重命名成vasp.sh
即可。想试用的,购买机时的可以加QQ群:608307988咨询一下。
Slurm 国科智算上系统采用的是slurm
任务调度工具。Simple Linux Utility for Resource Management ,它是一个用于Linux
和 Unix
内核系统的免费、开源的任务调度工具,被世界范围内的超级计算机和计算机群广泛采用。它提供了三个关键功能。第一,为用户分配一定时间的专享或非专享的资源(计算机节点),以供用户执行工作。第二,它提供了一个框架,用于启动、执行、监测在节点上运行着的任务(通常是并行的任务,例如MPI
,第三,为任务队列合理地分配资源。 大约60%的500强 超级计算机上都运行着Slurm
,包括2016年前世界上最快的计算机天河-2 。 以上是来自维基百科 的解释,具体的大家可以浏览Slurm
的官网:Slurm Workload Manager
Sbatch 在这个调度系统中,提交任务时我们需要用到命令: sbatch
: https://slurm.schedmd.com/sbatch.html
sbatch
命令后面要跟一堆的参数,比如计算时间,节点数,邮箱,队列,调用的环境变量,任务名称等等。但这些信息通过命令直接输入又有些麻烦,所以我们把它们放到一个脚本
里面,免得每次都重新输入一大长串的内容。而这个脚本,也就是我们本节内容的主角: vasp.sh
。
首先,我们浏览sbatch
的详细参数: https://slurm.schedmd.com/sbatch.html
然后根据这些参数,我们就可以创建一个vasp.sh
脚本了。
vasp.sh 下面就是vasp.sh
的主要内容:有2种写法,这两种写法也可以混着用,不影响。主要还是要参考sbatch
的使用说明,需要什么就按照格式填写相应的内容。
写法(一)
1 2 3 4 5 6 7 8 9 10 11 12 #!/bin/bash module load mpi/intelmpi/2017.4.239 mpirun /public/software/apps/vasp/544/vasp.5.4.4/bin/vasp_std
写法(二)
1 2 3 4 5 6 7 8 9 10 11 #!/bin/bash module load mpi/intelmpi/2017.4.239 mpirun /public/software/apps/vasp/544/vasp.5.4.4/bin/vasp_std
上面每一行的含义,大师兄都注释出来了。
从第二行往下一次为:
任务的名字,
VASP
的标准输出,
错误输出,
任务运行的分区,
使用的节点,
每个节点的的tasks
数目。这个tasks
可以理解为每个节点的核数,国科智算的新机器每个节点是28个核。
以及你的计算所用的时间。
最后两行为:我们调用的环境变量以及运行vasp
程序。
需要注意的是,脚本里面的内容比如-N
(修改任务所需的节点数目)、-J
(修改任务的名字)这些我们频繁更换的,可以从脚本里面拿出来,在命令中运行。
1 sbtach -N 2 -J test vasp.sh
本人自己的计算,一般28个核就够,任务名字也懒得修改。就把-N
,-J
写到vasp.sh中了。大家根据自己的任务特点自动修改就行了。下面我们具体演示一下。
实例操作1: 我们要在operation
分区,运行一个VASP
的单点计算,任务名称为:single
, 使用2个节点,限制时间为2个小时;那么脚本的修改以及任务提交如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 gkzshpc101@login02:~/ex-A11/test_single$ gkzshpc101@login02:~/ex-A11/test_single$ ls INCAR KPOINTS POSCAR POTCAR vasp.sh gkzshpc101@login02:~/ex-A11/test_single$ cat vasp.sh module load mpi/intelmpi/2017.4.239 mpirun /public/software/apps/vasp/544/vasp.5.4.4/bin/vasp_std gkzshpc101@login02:~/ex-A11/test_single$ sbatch vasp.sh Submitted batch job 35525 gkzshpc101@login02:~/ex-A11/test_single$ squeue JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) 35525 operation single gkzshpc1 R 0:09 2 c[0032-0033] gkzshpc101@login02:~/ex-A11/test_single$ ls CHG CHGCAR CONTCAR DOSCAR EIGENVAL err.35525 IBZKPT INCAR KPOINTS OSZICAR out.35525 OUTCAR PCDAT POSCAR POTCAR REPORT vasprun.xml vasp.sh WAVECAR XDATCAR gkzshpc101@login02:~/ex-A11/test_single$
实例操作2: 我们在Operation
分区,运行一个VASP
的CI-NEB
的过渡态计算任务,任务名称为:NEB
,使用4个节点,限制时间为12个小时;那么脚本的修改以及任务提交如下:插了7个点,用112个核算,16个核算一个点。下面有点长,文字描述就到此结束,自己慢慢看,希望对大家有所帮助。注意: 脚本里面,我们换成编译了VTST
的vasp 5.4.1
版本。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 gkzshpc101@login02:~/ex-A11/test_neb$ ls 00 01 02 03 04 05 06 07 08 FS INCAR IS KPOINTS POTCAR vasp.shgkzshpc101@login02:~/ex-A11/test_neb$ cat vasp.sh # #SBATCH -J NEB #SBATCH -o out .%j #SBATCH -e err.%j #SBATCH -p operation #SBATCH -N 4 #SBATCH --ntasks-per-node=28 #SBATCH -t 12 :00 :25 module load mpi/intelmpi/2017.4 .239 mpirun /public /software/apps/vasp/541_neb /vasp.5 .4 .1 /bin/vasp_std gkzshpc101@login02:~/ex-A11/test_neb$ gkzshpc101@login02:~/ex-A11/test_neb$ sbatch vasp.sh Submitted batch job 35526 gkzshpc101@login02:~/ex-A11/test_neb$ squeue JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) 35526 operation NEB gkzshpc1 R 0 :07 4 c[0056 -0057 ,0060 -0061 ] gkzshpc101@login02:~/ex-A11/test_neb$ ls 00 01 02 03 04 05 06 07 08 err.35526 FS INCAR IS KPOINTS out .35526 POTCAR vasprun.xml vasp.shgkzshpc101@login02:~/ex-A11/test_neb$ ls * err.35526 FS INCAR IS KPOINTS out .35526 POTCAR vasprun.xml vasp.sh 00 :POSCAR 01 :CHG CHGCAR CONTCAR DOSCAR EIGENVAL IBZKPT OSZICAR OUTCAR PCDAT POSCAR REPORT WAVECAR XDATCAR 02 :CHG CHGCAR CONTCAR DOSCAR EIGENVAL IBZKPT OSZICAR OUTCAR PCDAT POSCAR REPORT stdout WAVECAR XDATCAR 03 :CHG CHGCAR CONTCAR DOSCAR EIGENVAL IBZKPT OSZICAR OUTCAR PCDAT POSCAR REPORT stdout WAVECAR XDATCAR 04 :CHG CHGCAR CONTCAR DOSCAR EIGENVAL IBZKPT OSZICAR OUTCAR PCDAT POSCAR REPORT stdout WAVECAR XDATCAR 05 :CHG CHGCAR CONTCAR DOSCAR EIGENVAL IBZKPT OSZICAR OUTCAR PCDAT POSCAR REPORT stdout WAVECAR XDATCAR 06 :CHG CHGCAR CONTCAR DOSCAR EIGENVAL IBZKPT OSZICAR OUTCAR PCDAT POSCAR REPORT stdout WAVECAR XDATCAR 07 :CHG CHGCAR CONTCAR DOSCAR EIGENVAL IBZKPT OSZICAR OUTCAR PCDAT POSCAR REPORT stdout WAVECAR XDATCAR 08 :CHG CHGCAR CONTCAR DOSCAR EIGENVAL IBZKPT OSZICAR OUTCAR PCDAT POSCAR REPORT stdout WAVECAR XDATCAR gkzshpc101@login02:~/ex-A11/test_neb$ gkzshpc101@login02:~/ex-A11/test_neb$ head -n 10 out .35526 running on 112 total cores each image running on 16 cores distrk: each k-point on 16 cores, 1 groups distr: one band on 1 cores, 16 groups vasp.5 .4 .1 05 Feb16 (build May 24 2018 19 :36 :47 ) complex