等待上个任务执行成功再执行任务(任务依赖)
等待上个任务执行完再执行任务,用以下参数
--dependency=afterok:xxxxx(XXXXX为任务ID)
这里以cn-long分区为例:
目录在:/lustre2/teach_pkuhpc/example/s10_ctrl
1、执行获取脚本:
[test_pkuhpc@login12 s10_ctrl]$ pkurun-cnlong 1 1 sleep 1
Submitted batch job 1094807
2、修改查看脚本:
[test_pkuhpc@login12 s10_ctrl]$ mv job.srp000753 job-org.srp
修改脚本job-org.srp sleep生成的时间为200如下:
[test_pkuhpc@login12 s10_ctrl]$ cat job-org.srp
#!/bin/bash
#SBATCH -J sle000753
#SBATCH -p cn-long
#SBATCH -N 1
#SBATCH -o sle000753_%j.out
#SBATCH -e sle000753_%j.err
#SBATCH --no-requeue
#SBATCH -A test_g1
#SBATCH --qos=testcnl
#SBATCH -c 1
pkurun sleep 200
3、修改生成的脚本
[test_pkuhpc@login12 s10_ctrl]$ cp job.srp000753 job-dep.srp
[test_pkuhpc@login12 s10_ctrl]$ vi job-dep.srp
查看修改的脚本
[test_pkuhpc@login12 s10_ctrl]$ cat job-dep.srp
#!/bin/bash
#SBATCH -J sle000753
#SBATCH -p cn-long
#SBATCH -N 1
#SBATCH -o sle000753_%j.out
#SBATCH -e sle000753_%j.err
#SBATCH --no-requeue
#SBATCH -A test_g1
#SBATCH --qos=testcnl
#SBATCH -c 1
pwd ;date;sleep 30
4、提交任务:
[test_pkuhpc@login12 s10_ctrl]$ sbatch job-org.srp
Submitted batch job 1094878
5、提交依赖任务:
[test_pkuhpc@login12 s10_ctrl]$ sbatch --dependency=afterok:1094878 job-dep.srp
Submitted batch job 1094879
6、查看任务提交结果
可以看出在等待上个任务完成
7、查看输出结果
——————————————————————————————————————————————————————
不正确的结果
8、复制job-org.srp为 job-bad.srp,并修改内容如下
[test_pkuhpc@login12 s10_ctrl]$ cp job-org.srp job-bad.srp
[test_pkuhpc@login12 s10_ctrl]$ vi job-bad.srp
[test_pkuhpc@login12 s10_ctrl]$ cat job-bad.srp
#!/bin/bash
#SBATCH -J sle000753
#SBATCH -p cn-long
#SBATCH -N 1
#SBATCH -o sle000753_%j.out
#SBATCH -e sle000753_%j.err
#SBATCH --no-requeue
#SBATCH -A test_g1
#SBATCH --qos=testcnl
#SBATCH -c 1
pkurun sleep 200
sdfafwfw
9、重复步骤4-7会出现如下结果:
需要用scancel 或者pkucancel取消这个任务。任务不能执行