salloc
salloc 用于申请计算节点,然后用户登录到申请到的计算节点上运行任务。
salloc 与 sbatch 有几乎相同的参数,不同的是,sbatch 在申请到资源后,直接跳转到申请到的计算节点运行脚本中的指令,而 salloc 只是申请资源,并不会自动跳转到节点执行指令。
例子
申请单节点多核心资源
如下,申请一个节点6个核心,并跳转到该节点上运行程序;
未名一号
salloc -p C032M0128G -N1 -n6 -q low -t 2:00:00
# salloc 申请成功后会返回申请到的节点和作业ID等信息,假设申请到的是a4u03n07节点,作业ID为1078858
ssh a4u03n07 # 直接登录到刚刚申请到的节点a4u03n07调式作业
scancel 1078858 # 计算资源使用完后取消作业
squeue -j 1078858 # 查看作业是否还在运行,确保作业已经退出,避免产生不必要的费用
申请单节点 GPU 资源
申请一个GPU节点,6个核心,1块GPU卡,并跳转到节点上运行程序;
salloc -p GPU -N1 -n6 --gres=gpu:1 -q low -t 24:00:00
# 假设申请成功后返回的作业号为1078858,申请到的节点是gpu05
ssh gpu05 # 登录到gpu05上调式作业
scancel 1078858 # 计算结束后结束任务
squeue -j 1078858 # 确保作业已经退出
多节点多核心案例
申请两个节点,每个节点12个核心
salloc -p C032M0128G -N2 --ntasks-per-node=12 -q low -t 2:00:00
# salloc 申请成功后会返回申请到的节点和作业ID等信息,假设申请到的是a8u03n[05-06]节点,作业ID为1078858
# 这里申请两个节点,每个节点12个进程,每个进程一个核心
# 根据需求导入MPI环境
module load intel/2018.0
mpirun -np 24 hostname
# 结束后退出或者结束任务
scancel 1078858
注意事项
警告
交互式任务通常只在调试程序的时候使用
交互式任务运行结束后需确保计算资源是否释放
关于 salloc 的可用参数可以 参看 sbatch 指令