Skip to main content Link Menu Expand (external link) Document Search Copy Copied

常用 SLURM 命令

Last modified: December 03, 2024

  • sinfo: 查看节点空余状态,显示可用分区和节点信息。
  • squeue: 查看作业队列,显示当前作业状态。
  • scancel <job_id>: 取消指定作业。
  • scontrol: 管理作业和集群配置的多功能命令。常用子命令包括:
    • scontrol show job <job_id>: 查看指定作业的详细信息。
    • scontrol show node <node_name>: 查看指定节点的详细状态信息。
    • scontrol hold <job_id>: 暂停一个作业,使其不会执行。
    • scontrol release <job_id>: 释放暂停的作业,使其可以继续执行。
    • scontrol update JobId=<job_id> <parameters>: 更新作业的某些属性,例如时间限制。

sinfo

官方文档: https://slurm.schedmd.com/sinfo.html

sinfo命令报告分区和节点的状态.

$ sinfo
HOSTNAMES  AVAIL  STATE  CPUS(Avail/Total)  GRES_USED
bigMem0    up     idle   64/64              gpu:tesla_t4:0(IDX:N/A)
bigMem1    up     mix    54/64              gpu:nvidia_a30:2(IDX:0-1)
bigMem2    up     mix    14/128             gpu:0
bigMem3    up     alloc  0/512              gpu:0

上述输出表示有四个计算节点, bigMem0 是 idle 即完全空闲的; bigMem1 是 mix, 表示有一部分核被用户使用了, 且GPU被占用了前两个; bigMem3 显示 alloc, 表示该计算节点的所有核都被占用了, 此时其他用户无法再申请那台机器上的资源.

squeue & scancel

官方文档: https://slurm.schedmd.com/squeue.html, https://slurm.schedmd.com/scancel.html

在等待你的程序执行的同时, 你可以通过 squeue 知道程序的状态. 例如, 在 loginNode 上列出所有正在队列中的作业:

$ squeue

你会看到

JOBID USER    NAME        ST CPUS GPUS END_TIME         NODELIST    REQ_NODES
4902  qsxu    vasp_job    R  48   N/A  2024/09/04 17:43 bigMem[2-3] bigMem3
4898  qsxu    vasp_job    R  48   N/A  2024/09/04 17:29 bigMem[2-3] bigMem3
4897  qsxu    vasp_job    R  48   N/A  2024/09/04 17:29 bigMem[2-3] bigMem3
4896  qsxu    vasp_job    R  48   N/A  2024/09/04 17:29 bigMem[2-3] bigMem3
4793  yjzhang dissociatio R  256  N/A  2024/09/07 01:39 bigMem3     bigMem3
  • JOBID: 作业编号.
  • USER: 提交作业的用户名.
  • NAME: 作业名称.
  • ST: 作业状态. 从提交到完成的典型作业状态是: PENDING (PD) 和 RUNNING (R). 如果你没有看到你的作业, 那么很可能它已经完成了. 此外有时候你能看到的状态是 COMPLETING (CG), 表示作业已完成, 正在结束.
  • CPUS: 作业申请的核数. 你可以通过这一列推断某一个节点上还有多少空闲的核可用.
  • GPUS: 用户申请节点时使用的GPU. 如果为N/A, 表示用户并没有使用.
  • END_TIME: 作业预计结束时间. 如果该作业正在运行中, 这个时间表示该作业最晚可能的结束时间 (注意到所有作业都有运行时长限制, 如果不设置时长, 默认的运行时长是一天; 最多可申请的运行时长是七天.) 如果该作业正在排队中, 这是 slurm 根据当前队伍的长度为你预估的结束时间, 没有任何保障你的任务一定会在这个时间点前结束. 如果显示 N/A, 表明 slurm 暂时未安排你的任务, 无法预估何时结束.
  • NODELIST: 作业所占用的节点.
  • REQ_NODE: 用户申请的节点. 如果为空, 表示用户并没有指定节点.

如果你想中断正在运行的作业或取消排队, 请使用以下命令取消它:

scancel <jobid>

有时, 取消正在运行的作业需要较长的时间 (尤其是 I/O 密集型作业), 此时作业会进入 CG 状态.

scontrol

提交作业后你会得到一个作业号, 以下用 <jobid> 表示. 如果忘了你的作业号, 且你的作业还没有运行结束, 可以通过 squeue 命令查看你的作业编号.

用以下命令查看你提交的作业状态的详细信息:

scontrol show job <jobid>

用以下命令查看节点的状态的详细信息:

scontrol show node <nodename>

例如

$ scontrol show node bigMem0
NodeName=bigMem0 Arch=x86_64 CoresPerSocket=16
   CPUAlloc=28 CPUEfctv=64 CPUTot=64 CPULoad=3.78
   AvailableFeatures=(null)
   ActiveFeatures=(null)
   Gres=gpu:tesla_t4:4(S:0-1)
   NodeAddr=bigMem0 NodeHostName=bigMem0 Version=22.05.2
   OS=Linux 3.10.0-1160.36.2.el7.x86_64 #1 SMP Wed Jul 21 11:57:15 UTC 2021
   RealMemory=1030499 AllocMem=0 FreeMem=717245 Sockets=2 Boards=1
   State=MIXED ThreadsPerCore=2 TmpDisk=0 Weight=1 Owner=N/A MCS_label=N/A
   Partitions=partition
   BootTime=2023-09-11T13:27:35 SlurmdStartTime=2023-11-30T07:26:18
   LastBusyTime=2024-01-30T14:32:36
   CfgTRES=cpu=64,mem=1030499M,billing=64
   AllocTRES=cpu=28
   CapWatts=n/a
   CurrentWatts=0 AveWatts=0
   ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s

用以下命令查看系统中的预约信息:

scontrol show reservation

另可参见 SLURM 官方文档对 scontrol 的介绍: https://slurm.schedmd.com/scontrol.html


Copyright © 2020-2024 Advancedsolver Admin Team.