Slurm集群使用

本文详细介绍SLURM资源管理系统的使用方法,包括作业提交、查看、控制等关键操作,适用于集群环境下的任务调度与管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用命令:

sinfo #查看服务器节点和分区
squeue -u username #查看你当前运行的任务
scontrol show job JOBID #查看指定的jobID的状态
scancel jobid #取消对应jobid任务
sbatch test.s #以批命令的方式运行test.s这个文件。
scontrol show node #显示所有node节点的硬件信息
scontrol show node node02"#查看名字为node02的节点的硬件信息
smap #以图形的方式显示运行的任务

##slurm资源管理系统命令
#运行命令方式:sbatch run.sh
srun sh test.sh #分别运行对应的sh脚本
srun python test.py #运行python程序
srun Rscript test.R  #运行R程序

详细划分:

1、提交作业

$ module load slurm
$ sbatch slurm-job.sh
Submitted batch job 106

2、列出作业

查看当前任务:PD排队;R运行;S挂起;CG正在退出

$ squeue
  JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
    106 defq      slurm-jo  rstober   R   0:04      1 atom01

3、显示作业细节

$ scontrol show job 106
JobId=106 Name=slurm-job.sh
   UserId=rstober(1001) GroupId=rstober(1001)
   Priority=4294901717 Account=(null) QOS=normal
   JobState=RUNNING Reason=None Dependency=(null)
   Requeue=1 Restarts=0 BatchFlag=1 ExitCode=0:0
   RunTime=00:00:07 TimeLimit=UNLIMITED TimeMin=N/A
   SubmitTime=2013-01-26T12:55:02 EligibleTime=2013-01-26T12:55:02
   StartTime=2013-01-26T12:55:02 EndTime=Unknown
   PreemptTime=None SuspendTime=None SecsPreSuspend=0
   Partition=defq AllocNode:Sid=atom-head1:3526
   ReqNodeList=(null) ExcNodeList=(null)
   NodeList=atom01
   BatchHost=atom01
   NumNodes=1 NumCPUs=2 CPUs/Task=1 ReqS:C:T=*:*:*
   MinCPUsNode=1 MinMemoryNode=0 MinTmpDiskNode=0
   Features=(null) Gres=(null) Reservation=(null)
   Shared=0 Contiguous=0 Licenses=(null) Network=(null)
   Command=/home/rstober/slurm/local/slurm-job.sh
   WorkDir=/home/rstober/slurm/local

4、Suspend a job (root only)

# scontrol suspend 135
# squeue
  JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
    135  defq simple.s  rstober  S   0:10   1    atom01

5、Resume a job (root only)

# scontrol resume 135
# squeue
  JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
    135  defq simple.s  rstober  R   0:13   1    atom01

6、Kill a job
用户可以杀死自己的作业,root可以杀死任何作业。

$ scancel 135
$ squeue
  JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)

7、Hold a job

$ squeue
  JOBID PARTITION     NAME     USER  ST       TIME  NODES NODELIST(REASON)
    139      defq   simple  rstober  PD       0:00      1 (Dependency)
    138      defq   simple  rstober   R       0:16      1 atom01
$ scontrol hold 139
$ squeue
  JOBID PARTITION     NAME     USER  ST       TIME  NODES NODELIST(REASON)
    139      defq   simple  rstober  PD       0:00      1 (JobHeldUser)
    138      defq   simple  rstober   R       0:32      1 atom01

8、Release a job

$ scontrol release 139
$ squeue
  JOBID PARTITION     NAME     USER  ST       TIME  NODES NODELIST(REASON)
    139      defq   simple  rstober  PD       0:00      1 (Dependency)
    138      defq   simple  rstober   R       0:46      1 atom01

9、List Partitions

显示节点信息;idle表示节点空闲。

$ sinfo
PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
defq*        up   infinite      1  down* atom04
defq*        up   infinite      3   idle atom[01-03]
cloud        up   infinite      2  down* cnode1,cnodegpu1
cloudtran    up   infinite      1   idle atom-head1

 

 

参考:

https://www.jianshu.com/p/99fd802f0577

https://blog.youkuaiyun.com/qq_31910613/article/details/102993478

### Slurm集群配置及管理 #### SLURM简介 SLURM(Simple Linux Utility for Resource Management)是一个开源的工作负载管理和高性能计算 (HPC) 资源调度系统。它能够高效地分配资源并执行分布式批处理作业。 #### 安装与基本配置 为了成功部署一个功能齐全的SLURM集群,通常需要完成以下几个主要部分的设置: 1. **环境准备** - 确保所有节点的操作系统版本一致,并已更新至最新状态。 - 配置无密码SSH登录以便于节点间通信[^1]。 2. **软件安装** - 使用包管理工具或者从源码编译的方式,在控制节点上安装SLURM及其依赖项。 ```bash sudo apt-get install slurm-wlm slurm-wlm-basic-plugins ``` - 将相同的软件分发到所有的计算节点上[^2]。 3. **配置文件编辑** 主要涉及`slurm.conf`这个核心配置文件,其中定义了整个集群的行为模式以及各个组件之间的关系。例如指定控制器的位置、设定默认队列参数等细节都需要在此处调整好之后才能启动服务进程。 4. **初始化数据库** 如果启用了持久化存储,则还需要创建相应的MySQL/MariaDB实例来保存历史记录数据表结构及相关索引字段信息等内容。 5. **测试验证** 启动slurmd daemon后可以通过简单的pingpong程序或者其他标准测试套件确认网络连通性和性能指标是否满足预期目标要求[^3]。 #### 常见命令操作指南 - 查看当前可用分区列表:`sinfo` - 提交新任务给特定队列运行:`sbatch myjobscript.sh` - 实时跟踪正在执行中的某个具体ID号对应的任务进度情况:`squeue -j JOB_ID` - 修改现有节点的状态标记为可恢复使用状态:`scontrol update nodename=nodeX state=resume` 以上就是关于如何进行基础层面之上更深入理解与实践当中可能会涉及到的一些知识点概述。 ```python # 示例Python脚本提交至SLURM #!/usr/bin/env python3 #SBATCH --partition=debug # Partition to submit job into. #SBATCH --time=00:05:00 # Run time in hh:mm:ss format. import os print(f"Running on {os.uname()[1]}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值