Skip to content

salloc 交互式资源申请

salloc 用于先申请一段交互式计算资源。资源分配成功后,用户可以登录到分配的计算节点,在该节点上连续运行多个命令,或启动开发工具。

这种方式适合较长时间调试、需要在计算节点上连续操作,或需要配合 JupyterLab 使用方法VSCode 使用方法 进行交互式开发的场景。正式批量计算任务仍建议使用 sbatch 批量提交作业

基本用法

bash
salloc [资源参数]

常用资源参数:

参数说明
-N <节点数>申请计算节点数量
--ntasks=<任务数>申请任务数量
--cpus-per-task=<CPU核数>每个任务使用的 CPU 核数
--mem=<内存>申请内存,例如 16G
--gres=gpu:<GPU数>申请 GPU 数量
--partition=<队列名>指定运行队列
--time=<时长>最长运行时间,例如 02:00:00
--qos=<服务质量>指定 QOS,按实际队列策略使用

CPU 资源示例

申请 1 个节点、8 个 CPU、16 GB 内存,最长运行 5 分钟:

bash
salloc -N 1 --cpus-per-task=8 --mem=16G -t 5:00 -p qcpu_18i

资源分配成功后会看到类似输出:

text
salloc: Pending job allocation 273377
salloc: job 273377 queued and waiting for resources
salloc: job 273377 has been allocated resources
salloc: Granted job allocation 273377
salloc: Waiting for resource configuration
salloc: Nodes bnode1 are ready for job

此时可以登录到提示中的计算节点:

bash
ssh bnode1

GPU 资源示例

申请 1 个节点、1 个任务、4 个 CPU、16 GB 内存和 2 张 GPU,最长运行 5 分钟:

bash
salloc -N 1 --ntasks=1 --cpus-per-task=4 --mem=16G --gres=gpu:2 -p qgpu_3090 -t 5:00

资源分配成功后会看到类似输出:

text
salloc: Pending job allocation 273390
salloc: job 273390 queued and waiting for resources
salloc: job 273390 has been allocated resources
salloc: Granted job allocation 273390
salloc: Waiting for resource configuration
salloc: Nodes gnode12 are ready for job

随后登录到分配的 GPU 节点:

bash
ssh gnode12

查看已申请资源

查看当前用户的排队和运行作业:

bash
squeue

示例输出:

text
JOBID  PARTITION  NAME      USER  ST  TIME   NODES  NODELIST(REASON)
273377 qcpu_18i   interact  demo  R   13:41      1  bnode1
273390 qgpu_3090  interact  demo  R    4:25      1  gnode12

查看更详细的信息:

bash
squeue -l

登录计算节点

salloc 分配成功后,可以使用 ssh 登录分配到的计算节点:

bash
ssh bnode1

或:

bash
ssh gnode12

注意

如未通过 sallocsrunsbatch 获取某个计算节点资源,通常无法直接 SSH 到该节点。

text
Access denied by pam_slurm_adopt: you have no active jobs on this node

典型流程

  1. 在登录节点提交 salloc 资源申请。
  2. 等待 Slurm 分配满足条件的计算节点。
  3. 使用 squeue 查看作业和节点信息。
  4. 使用 ssh 节点名 登录到分配的计算节点。
  5. 在计算节点上运行命令、调试程序,或启动 JupyterLab、VSCode 等工具。
  6. 使用结束后退出节点,并结束交互式资源占用。

结束资源占用

如果当前还在 salloc 会话中,可以输入:

bash
exit

如果需要从登录节点取消已经申请的资源,可使用作业 ID:

bash
scancel 作业ID

配合应用工具使用

需要在计算节点上打开图形化或 Web 开发环境时,建议先通过 salloc 申请资源,再按对应应用教程操作:

视频示例

salloc 申请资源演示

参考教程

Copyright 2021 All Rights Reserved 生物设计中心 版权所有