跳转至

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 指令