salloc
# salloc命令
salloc
命令可以实现先申请资源,成功申请到计算资源后,再执行命令。在天河系统上的命令为 yhalloc
。本文以 yhalloc
命令为例进行介绍。
# 使用场景
step1:使用 salloc
命令申请资源:
$ yhalloc -N 2 -n 56 -p debug
yhalloc: Granted job allocation 12918898
1
2
2
说明:
- 通常需要指定申请计算资源的分区名(如 debug 分区,可以用
yhi
命令查看可用分区) - 通常需要指定申请的节点数目/申请的核心数(示例中 -N 2 表示申请两个节点,-n 56 表示每个节点有 56 个核)
- 运行这个命令后,会在命令行下方看到类似如下信息:
step2:使用 srun 命令提交任务到节点执行
这是再使用 srun 命令运行的程序,将会运行在刚才申请的计算资源上。
step3:如果希望切换到计算节点执行,可以先获得节点名称(使用 yhq
命令),然后 ssh
命令切到节点上
$ yhq
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
12918898 debug bash zhenggan R 0:01 2 cn[1064-1065]
1
2
3
2
3
我们看到节点编号为 cn[1064-1065]
,我们可以 ssh 到该节点上:
$ ssh cn1064
$ hostname
cn1064
1
2
3
2
3
在这个节点执行相关命令,完成任务后,再切回到计算节点上:
$ exit
1
step4: 完成任务后,释放计算资源
$ yhcancel 12918898
1
说明:
- 通常需要指定要取消的任务的 JOBID
- 运行这个命令后,会在命令行下方看到类似如下信息:
scancel: Job 12918898 has been successfully cancelled
1
这里面的 12918898 就是之前 salloc 命令返回的 JOBID。