1. 概述

Slurm 是一个开源、容错、高可伸缩的集群管理和大型小型 Linux 集群作业调度系统。slurm不需要对操作系统内核进行修改,而是相对独立的。

作为集群工作负载管理器。slurm有三个关键功能:

  1. 首先,它在一段时间内为用户分配独占或者非独占的计算资源,以便他们能够执行工作任务
  2. 其次,它能提供一个框架,用于在分配的节点集上启动,执行,监视工作,通常是并行作业任务
  3. 最后,它通过管理挂起的工作队列,来仲裁资源争夺问题

2. 架构

如下图2.1所示,slurm构成有:

  1. 运行在每个计算节点上的slurmd守护进程
  2. 运行在管理节点上的中央slurmctld守护进程(可选的故障切换节点模式)



    用户命令,包括:sacct,salloc,sattach,sbatch,sbcast,scancel,scontrol,sinfo,smap,squeue,srun,strigger,sviw,sreport等,均可以在集群的任何地方运行。

    如下图所示,由这些 Slurm 守护程序管理的实体,包括:
  • 计算资源node
  • 计算资源组成的逻辑集partition
  • 分配给用户指定的时间量的资源分配job
  • 作业中的一组任务(有可能是并行任务)



这些分区可以被视为作业队列, 其中每一个都有各种约束, 如作业大小限制、工作时间限制、允许使用它的用户等。

按照优先级排序的作业,从队列中分配节点,直至该队列分资源,如节点,处理器,内存等耗尽。

一旦一个job分配了一组节点后, 用户就能够按照任何分配配置,以作业步骤形式启动并行工作。

例如, 可以启动一个作业步骤, 利用分配给作业的所有节点, 或者多个作业步骤可以独立地使用分配的一部分。

3. 命令

在部署了slurm的系统上,slurm daemons,slurm commands,和API functions均可通过帮助选择查看。

命令选择--help也能够提供一个简洁的功能选项总结。需要注意的是,命令选项都区分大小写。

3.1 sacct

sacct 用于汇总报告正在活动或者已经结束的job和job step的审计信息。

3.2 sattach

sattach用于input、output和error plus signal功能附加到当前正在运行的作业或作业步骤中。你可以多次连接和分离工作。

3.4 sbatch

sbatch用于提交作业脚本以供以后执行。脚本通常包含一个或多个 srun 命令来启动并行任务

3.5 sbcast

sbatch用于将文件从本地磁盘传输到分配给作业的节点上的本地磁盘。这可用于有效地使用无盘计算节点或提供相对于共享文件系统的改进性能

3.6 scancel

scancel用于取消挂起或正在运行的作业或作业步骤。它还可用于向与正在运行的作业或作业步骤关联的所有进程发送任意信号。

3.7 scontrol

scontrol是用于查看和/或修改 Slurm 状态的管理工具。请注意, 许多 scontrol 命令只能作为用户根执行。

3.8 sinfo

sinfo报告由 Slurm 管理的分区和节点的状态。它具有多种筛选、排序和格式设置选项。

3.9 smap

smap报告由 Slurm 管理的作业、分区和节点的状态信息, 但以图形方式显示信息以反映网络拓扑。

3.10 squeue

报告作业或作业步骤的状态。它具有多种筛选、排序和格式设置选项。

默认情况下, 它以优先级顺序报告正在运行的作业, 然后按优先级顺序报表挂起的作业。

3.11 srun

用于提交执行任务或实时启动作业步骤。

srun 有各种各样的选项来指定资源需求, 包括: 最小和最大节点数、处理器计数、要使用或不使用的特定节点以及特定节点特征 (内存、磁盘空间、某些必需的功能等)。

作业可以包含在作业节点分配中按顺序或并行执行的多个作业步骤。

3.12 strigger

strigger用于设置、获取或查看事件触发器。事件触发器包括节点下降或工作接近其时间限制等内容。

3.13 sview

是一个图形用户界面, 用于获取和更新由 Slurm 管理的作业、分区和节点的状态信息。

slurm用户快速入门手册的更多相关文章

  1. Github快速入门手册

    最近在试用Github,开源的思想也让人觉得把一些经验分享出来是非常好的事情.附件是doc文件,如有需要请注意查收.希望能对你有帮助. GITHUB基于互联网的版本控制快速入门手册 如有不妥,欢迎指正 ...

  2. Maven——快速入门手册(学习记录)

    前言: 前段时间进行了一点maven的入门学习,在这里做个记录,希望能帮到一些正在学习的朋友们.maven版本为3.3.9.希望大家觉得好的点个赞,觉得不好的多提提意见和建议做个交流.这里也贴出我学习 ...

  3. Lua脚本语言快速入门手册

    学了两天Lua语言,感叹其短小精悍,上手极快,语法还很舒服,不错!整理下学习过程中经常用到的基础知识,共勉! Lua用法简述 Lua语言是在1993年由巴西一个大学研究小组发明,其设计目标是作为嵌入式 ...

  4. Java8——快速入门手册(学习笔记)

    github博文传送门 Java8特性学习笔记 Java8中新增了许多的新特性,在这里本人研究学习了几个较为常用的特性,在这里与大家进行分享.(这里推荐深入理解Java 8用于理解基础知识)本文分为以 ...

  5. Markdown 语法快速入门手册

    Markdown 是一种轻量级标记语言,能将文本换成有效的XHTML(或者HTML)文档,它的目标是实现易读易写,成为一种适用于网络的书写语言. Markdown 语法简洁明了,易于掌握,所以用它来写 ...

  6. Gradle用户指南(章9:Groovy快速入门)

    Gradle用户指南(章9:Groovy快速入门) 你可以使用groovy插件来构建groovy项目.这个插件继承了java插件的功能,且扩展了groovy编译.你的项目可以包含groovy代码.ja ...

  7. IdentityServer4 中文文档 -11- (快速入门)添加基于 OpenID Connect 的用户认证

    IdentityServer4 中文文档 -11- (快速入门)添加基于 OpenID Connect 的用户认证 原文:http://docs.identityserver.io/en/releas ...

  8. Slickflow.Graph 开源工作流引擎快速入门之四: 图形编码建模工具使用手册

    前言: 业务人员绘制流程时,通常使用图形GUI界面交互操作来完成,然而对于需要频繁操作或者管理较多流程的系统管理用户,就需要一款辅助工具,来帮助他们快速完成流程的创建和编辑更新.Slickflow.G ...

  9. 专为设计师而写的GitHub快速入门教程

    专为设计师而写的GitHub快速入门教程 来源: 伯乐在线 作者:Kevin Li     原文出处: Kevin Li 在互联网行业工作的想必都多多少少听说过GitHub的大名,除了是最大的开源项目 ...

随机推荐

  1. java web中java和python混合使用

    利用java web技术展示python算法处理后的数据 工具/原料   myeclipse10 pycharm+Anaconda2 方法/步骤     首先安装配置好pycharm+Anaconda ...

  2. Maven将依赖包、jar/war包及配置文件输出到指定目录

    使用Maven插件将依赖包 jar包 war包及配置文件输出到指定目录 写在前面 ​ 最近遇到一个朋友遇到一个项目需要将 maven 的依赖包和配置文件分开打包然后用脚本执行程序.这样的好处在于可以随 ...

  3. logstash之input、codec学习

    Logstash最强大的功能在于丰富的过滤器插件.此过滤器提供的并不单单是过滤的功能,还可以对进入过滤器的原始数据进行复杂的逻辑处理.甚至添加独特的事件到后续流程中. 1.logstash基本语法组成 ...

  4. 17LaTeX学习系列之---LaTeX的版面设计

    目录 目录 前言 (一)基础知识 1.纸张大小的设置 2.边距的设置 3.页眉页脚的设置 4.横分割线的设置 5.行间距与段间距 (二)实例 1.源代码 2.输出效果: 目录 本系列是有关LaTeX的 ...

  5. parallels Desktop解决无法压缩硬盘的问题

    使用pd12新建的win7虚拟机仅仅使用了四十个G,但在本地硬盘中的体现却是占用了一百左右:尝试压缩提示: 无法编辑硬盘属性,因为该硬盘有一个或多个快照. 该硬盘属于某一带有一个或多个快照的虚拟机.请 ...

  6. 卷积运算的本质,以tensorflow中VALID卷积方式为例。

    卷积运算在数学上是做矩阵点积,这样可以调整每个像素上的BGR值或HSV值来形成不同的特征.从代码上看,每次卷积核扫描完一个通道是做了一次四重循环.下面以VALID卷积方式为例进行解释. 下面是pyth ...

  7. Sublime Text3如何快速预览html文件

    Sublime Text3 步骤1:选择 Tools----> Build System ----> New Build System... 步骤2:输入以下内容 "cmd&qu ...

  8. Nginx使用教程(一):下载并编译安装Nginx

    安装依赖 <br\>我们已经选择下载程序源代码进行手动编译,而不是使用软件包管理器(如Yum,Aptitude或Yast)进行安装. 这个选择有两个原因. 首先,软件包可能不包含在您的Li ...

  9. JS获取本周、本季度、本月、上月的开始日期、结束日期

    /** * 获取本周.本季度.本月.上月的开始日期.结束日期 */ var now = new Date();                    //当前日期 var nowDayOfWeek = ...

  10. 【js】++i和i++

    解析: i++ 执行完语句后再加1 ++i 先加1再执行后面的语句 例如 var i=0; ++i 的值为1 i++的值为0 注意:不管前置++还是后置++,i的值都会发生变化,值为1 例子 1.va ...