专栏首页mathorSLURM使用教程

SLURM使用教程

我现在经常在实验室服务器上跑程序,而老师要求我们使用SLURM作业管理系统,网上资料零零散散,这篇文章算是一个简单的汇总

常用术语

  • user:用户名
  • node:计算节点
  • core:cpu核
  • job:作业
  • job step:作业步,单个作业可以有多个作业步
  • partition:分区,作业需在特定分区中运行
  • QOS:服务质量,可理解为用户可使用的CPU、内存等资源限制
  • tasks:任务数,默认一个任务使用一个cpu核,可理解为作业所需的cpu核数
  • socket:cpu插槽,可理解为物理cpu颗数
  • stdout:标准输出文件,程序运行正常时输出信息的文件,一般指输出到屏幕的信息
  • stderr:标准错误文件,程序运行出错时输出信息的文件,一般指输出到屏幕的信息

命令

  • sbatch:提交作业脚本。此脚本一般会包含一个或多个srun命令启动并行任务
  • sinfo:显示分区或节点状态,可以通过参数选项进行过滤、和排序
  • squeue:显示队列的作业及作业状态
  • scancel:取消排队或运行中的作业
  • scontrol:显示或设定slurm作业、分区、节点等状态
  • sacctmgr:显示和设置账户关联的QOS等信息
  • sacct:显示历史作业信息
  • srun:运行并行作业,具有多个选项,如:最大和最小节点数、处理器数、是否指定和排除节点

节点状态查看

  • PARRITION:节点所在分区
  • AVAIL:分区状态,up标识可用,down标识不可用
  • TIMELIMIT:程序运行最大时长,infinite表示不限制,如果限制格式为days-houres:minutes:seconds
  • NODES:节点数
  • NODELIST:节点名列表
  • STATE:节点状态,可能的状态包括:
    • allocated、alloc :已分配
    • completing、comp:完成中
    • down:宕机
    • drained、drain:已失去活力
    • fail:失效
    • idle:空闲
    • mixed:混合,节点在运行作业,但有些空闲CPU核,可接受新作业
    • reserved、resv:资源预留
    • unknown、unk:未知原因
    • 如果状态带有后缀*,表示节点没有响应

分区信息查看

  • DisableRootJobs:不允许root提交作业
  • Maxtime:最大运行时间
  • LLN:是否按最小负载节点调度
  • Maxnodes:最大节点数
  • Hidden:是否为隐藏分区
  • Default:是否为默认分区
  • OverSubscribe:是否允许超时
  • ExclusiveUser:排除的用户

作业信息查看

  • JOBID:作业号
  • PARITION:分区名
  • NAME:作业名
  • USER:用户名
  • ST:状态,常见的状态包括:
    • PD、Q:排队中 ,PENDING
    • R:运行中 ,RUNNING
    • CA:已取消,CANCELLED
    • CG:完成中,COMPLETIONG
    • F:已失败,FAILED
    • TO:超时,TIMEOUT
    • NF:节点失效,NODE FAILURE
    • CD:已完成,COMPLETED

作业信息查看

批处理模式提交作业

1.用户编写作业脚本

2.提交作业

3.作业排队等待资源分配

4.在首节点加载执行作业脚本

5.脚本执行结束,释放资源

6.用户在输出文件中查看运行结果

  • 作业脚本为文本文件,首行一“#!”开头,指定解释程序
  • 脚本中可通过srun加载计算任务
  • 一个作业可包含多个作业步
  • 脚本在管理节点上提交,实际在计算节点上执行
  • 脚本输出写到输出文件中

以下是一些常见的作业资源需求参数,使用#SBATCH -xx xxx的方式写入脚本中即可

-J,--job-name:指定作业名称
-N,--nodes:节点数量
-n,--ntasks:使用的CPU核数
--mem:指定每个节点上使用的物理内存
-t,--time:运行时间,超出时间限制的作业将被终止
-p,--partition:指定分区
--reservation:资源预留
-w,--nodelist:指定节点运行作业
-x,--exclude:分配给作业的节点中不要包含指定节点
--ntasks-per-node:指定每个节点使用几个CPU核心
--begin:指定作业开始时间
-D,--chdir:指定脚本/命令的工作目录

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Human Language Processing——Speech Recognition

    从图中可以看到,语言信号可以表示为一个d T的matrix。其中,d为向量的维度(不同的表示方法,维度不一样), T为向量的个数。 同理,文本也可以表示为一个...

    mathor
  • 尼姆博弈(Nim Game)

    mathor
  • Deep Learning for Human Language Processing_Intro

    Human Language Processing研究的内容根据输入输出的不同,可以分为如下6种

    mathor
  • 【微软芮勇】人工智能时代,我们能做什么?

    【新智元导读】微软亚洲研究院常务副院长芮勇在《新智元:机器+人类=超智能时代》书中畅想人工智能发展6大阶段,详细介绍微软语音识别、图像识别、牛津计划等多项人工智...

    新智元
  • SMPTE ST 2110 媒体设备的发现和连接管理的安全性

    本文来自SMPTE2019的演讲,演讲者是来自Riedel Communication GmbH&Co.KG的软件开发者的Jasper Peeters。

    用户1324186
  • Jenkins CI/CD 集成 Git Secrets

    通常,对我们在代码中使用的机密或凭据进行加密,然后将其保存在安全的地方。我们可以有很多选择来实现这一目标,例如使用 Vault 和 Git-crypt 等工具来...

    LinuxSuRen
  • 为什么说来料检验至关重要?

    导读:来料检验IQC(Incoming Quality Control)是企业产品在生产前的第一个控制品质的关卡,如把不合格品放到制程中,则会导致制程或最终产品...

    用户5495712
  • 【opencv实践】仿射变换和透视变换

    上面这副图就是我们今天要处理的了,我们想把它从拍照视角变成鸟瞰图,这是机器人导航中的常用手段,以便在该平面上进行规划和导航。

    周旋
  • linux之系统编码,python编码,

    sys.getdefaultencoding(): 获取系统当前编码,这里的系统指的是python自己的内置系统,并非操作系统,即3中的python编码。

    py3study
  • OpengL ES _ 入门_02

    顶点是啥? 顶点就是坐标位置,不管你是画直线,三角形,正方体,球体,以及3D游戏人物等,都需要顶点来确定其形状。 顶点坐标创建 1.记住顶点的坐标数据类型...

    酷走天涯

扫码关注云+社区

领取腾讯云代金券