目录

  • 一、前言
  • 二、Slurm介绍
  • 三、如何使用
    • sinfo 查看节点和分区信息
    • squeue 查看调度队列中作业信息
    • srun 运行并行作业
    • sbatch 用批处理脚本提交作业
    • scancel 取消已提交的作业
    • salloc 用于申请节点资源
    • sacct 查看历史作业信息
  • 四、总结
  • 五、参考

一、前言

本文基于北京超级云计算中心A分区平台介绍Slurm的用法,主要目的是让没接触过Slurm作业调度系统的人可以快速上手,轻松的提交与管理自己的作业。BSCC-A5超算的每个节点具有2颗32核AMD EPYC 7452@2.35GHz CPU组成,单节点64核,256GB内存,每个队伍最多使用2个节点共128核资源,节点间通过56Gb Infiniband 高速网互联。


二、Slurm介绍

Slurm是一个开源,容错,高度可扩展的集群管理和作业调度系统,适用于大型和小型Linux集群。Slurm不需要对其操作进行内核修改,并且相对独立。作为集群工作负载管理器,Slurm有三个关键功能。首先,它在一段时间内为用户分配对资源(计算节点)的独占和/或非独占访问,以便他们可以执行工作。其次,它提供了一个框架,用于在分配的节点集上启动,执行和监视工作(通常是并行作业)。最后,它通过管理待处理工作的队列来仲裁资源争用。

三、如何使用

对于集群使用者而言,其通常不需要过于关注集群的内部结构与节点之间网络连接情况,Slurm就提供了简单易用的命令将集群计算资源的使用难度降到了最低,以下依次列出对于用户而言常用的Slurm指令。

命令 功能描述
sinfo 查看节点和分区信息
squeue 查看调度队列中作业信息
srun 运行并行作业
sbatch 用批处理脚本提交作业
scancel 取消已提交的作业
salloc 用于申请节点资源
sacct 查看历史作业信息

sinfo 查看节点和分区信息

sinfo查看当前账号可使用的队列资源信息

相关信息解释:

参数 解释
PARTITION 分区名(队列名)
AVAIL 队列是否可用,up(可用)、inact(不可用)
TIMELIMIT 该队列作业运行时间限制,infinite(不限时)
NODES 节点数
STATE 节点状态,drain(故障)、alloc(已被分配)、idle(可用)、down(下线)、mix(部分占用)
NODELIST 节点列表

squeue 查看调度队列中作业信息

squeue查看调度队列中作业信息

相关信息解释:

参数 解释
JOBID 作业号
PARTITION 作业运行的队列名
NAME 作业名可自定义
USER 该作业所属账号名
ST 作业状态,R(运行中)、PD(排队中)、CG(将完成)、CD(已完成)
NODES 作业所使用节点数
NODELIST(REASON) 作业所使用节点列表

srun 运行并行作业

一个srun命令样例,表示指定队列名为amd_256,节点数为1,每个进程的核数为64,作业的运行时间限制为1分钟,作业名为pivot1,可执行文件为pivot

srun -p amd_256 -N 1 -c 64 -t 1 -J pivot1 pivot

常用参数

参数 解释
-N [count] 指定节点数count
-n [count] 指定进程数count
-c [count] 指定每个进程核数为count
-p [name] 指定提交作业到name队列
-w fa[0101-0102] 指定提交作业到fa0101和fa0102节点
-x fa[0103-0104] 提交作业时排除fa0103和fa0104节点
-o [filename] 指定标准输出到filename文件
-e [filename] 指定重定向错误输出到filename文件
-J [jobname] 指定作业名为jobname
-t [time] 限制运行time分钟

sbatch 用批处理脚本提交作业

每次都使用一长串命令提交作业比较麻烦,不够优雅,sbatch命令可以解析已经写好的脚本提交任务,一个脚本示例run.sh和用法如下。

#!/bin/bash
#SBATCH -p amd_256
#SBATCH -N 1
#SBATCH -c 64
#SBATCH -t 1
#SBATCH -J pivot1
./pivot

该脚本使用方法为

sbatch run.sh

表示指定队列名为amd_256,节点数为1,每个进程的核数为64,作业的运行时间限制为1分钟,作业名为pivot1,可执行文件为pivot

scancel 取消已提交的作业

前文中我们提交作业后会获得一个唯一的JOBID,如果该作业运行时间过长,你想强行终止该作业,就可以使用

scancel JOBID

强行终止该作业,也可通过其他的信息终止某个作业

参数 解释
-n [jobname] 终止作业名为jobname的作业
-p [name] 终止队列名为name的作业
-t PENDING 终止正在排队的作业
-w fa0101 终止运行在fa0104节点的作业

salloc 用于申请节点资源

salloc申请节点资源,用法如下:

  1. 执行salloc -p amd_256
  2. 执行squeue 查看分配到的节点资源,我们分配的的节点是fa0307
  3. 执行ssh fa0307登陆到所分配的节点
  4. 登陆计算节点后可以使用该节点资源
  5. 不使用节点后,执行scancel JOBID释放节点资源

sacct 查看历史作业信息

使用方法如下,可以查看历史作业的起止时间、结束状态、作业号、作业名、使用的节点数、节点列表、运行时间等。


四、总结

Slurm基础用法已经介绍完毕,上述命令可以满足大部分提交作业的需求,后续将会针对OpenMP、MPI等类型的任务给出代码和Slurm实例。
如果本文能给你带来帮助的话,点个赞鼓励一下作者吧!

五、参考

[1] Slurm Workload Manager:https://slurm.schedmd.com/documentation.html

【Linux】Slurm作业调度系统使用相关推荐

  1. 浅谈Slurm作业调度系统

    1.相关基本概念 资源(Resource) 作业运行过程中使用的可量化实体都是资源: 包括硬件资源(节点.内存.CPU .GPU等)和软件资源( License ): 集群(Cluster) 包含计算 ...

  2. slurm作业调度系统

    编写Slurm脚本 #!/bin/bash #SBATCH -J test # 作业名是 test #SBATCH -p cpu # 提交到 cpu 分区 #SBATCH -N 1 # 使用一个节点 ...

  3. slurm作业调度系统与天河二号的基本命令(新手入门, 以gs和vasp为例)

    本文地址            

  4. 快速入门:Slurm资源管理与作业调度系统

    快速入门:Slurm资源管理与作业调度系统 导读 本文将介绍slurm,一个 Linux服务器中的集群管理和作业调度系统.并对其基础命令和运行方式进行实战演练. 1. 简介 Slurm 组件 Slur ...

  5. slurm作业调度集群搭建及配置

    目录 一  环境准备 二 时间同步 三  munge认证 四 数据库安装 五 slurm搭建 六  集群用户管理和初始化配置 qos配置 一  环境准备 主机规划 master  192.168.22 ...

  6. LMT NEW PBS作业调度系统应对金融行业作业批处理

     LMT NEW PBS作业调度管理系统应对金融行业作业批处理 大集中之后,要改变批处理作业管理的现状,各公司急需引进成熟统一的解决方案,以提高作业效率,节约管理成本,规避作业失败的风险. 经过近几年 ...

  7. 嵌入式linux仪器,一种基于嵌入式Linux设备双系统的启动方法

    一种基于嵌入式Linux设备双系统的启动方法 [技术领域] [0001]本发明涉及一种基于嵌入式Linux设备双系统的启动方法. [背景技术] [0002]Linux操作系统特别是其嵌入式系统由于其源 ...

  8. Linux学习之系统时间同步

    一.系统时间的设置 在Linux中设置系统时间,可以用date命令: 1 //查看时间 2 [root@localhost ~]# date 3 2008年 12月 12日 星期五 14:44:12 ...

  9. slurm任务调度系统部署和测试(一)

    1.概述 本博客通过VMware workstation创建了虚拟机console,然后在console内部创建了8台kvm虚拟机,使用这8台虚拟机作为集群,来部署配置和测试slurm任务调度系统. ...

最新文章

  1. css3运动后留下轨迹尾巴_球磨机的工作原理及机内运动轨迹分析
  2. struts 2 标签之s:tree/和s:treenode/简单实例
  3. hbase.client.keyvalue.maxsize的默认值
  4. PHP_SELF变量解析和重复路径解决
  5. elsa-core——1.Hello World:Console
  6. (六)python3 只需3小时带你轻松入门——循环
  7. Dxperience 7.3.3 繁体中文本地化
  8. psychopy 音频时长代码_多媒体之音频输入1
  9. Python爬虫系列之poizon爬虫newSign、sign、data加解密算法
  10. 使用Git初始化已有的项目
  11. logback springBoot 配置日志
  12. 揭秘!谷歌云确立领先地位的五大变革
  13. 【编程马拉松】【014-红与黑】
  14. 软件行业迎来拐点 厂商积极拥抱SaaS和云计算
  15. 《自然》杂志:面对“电车难题”,不同国家的人有不同的道德选择
  16. SIPM模拟器 MIPS汇编语言实现读取文件
  17. 【H5】 React 微信H5调试等随记
  18. 怎样把多个TXT文件合成为一个TXT文件
  19. “AI骨龄医生”周年庆完美收官!武汉站引数百位儿科医生追捧
  20. 视觉算法工作一年社招经历总结

热门文章

  1. 【钉钉-场景化能力包】CRM系统促进广告平台高效获客
  2. ToF技术的三个典型应用场景案例浅析
  3. 华为鸿蒙系统p50手机,华为旗舰手机P50延迟发布,鸿蒙系统再次受到质疑,安卓的外壳?...
  4. 小红书成功注册老红书商标!网友:从小看到老
  5. 个人开发环境配置 (macOS 篇)
  6. 灵敏度、精密度、准确度、精确度的区别
  7. 苹果新Apple Watch和7款新iPad型号曝光
  8. 地图标识符号大全_【点播软件】木星影院:全新点播软件,高端大气专业界面,媲美完美影视大全!...
  9. 计算机毕设Python+Vue疫情医疗物资管理系统(程序+LW+部署)
  10. 男人要成功,就必须得远离十种女人