slurm作业管理系统怎么用?

2024-01-24 21:18

本文主要是介绍slurm作业管理系统怎么用?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

对于大型集群环境,通常需要有作业管理系统来调度分配系统资源,本文介绍一款开源免费的容错和高度可扩展的集群管理和作业调度系统:SLURM。在我国首次获得世界TOP500计算机排名第一的天河一号计算机上使用的集群管理和作业调度系统,就是基于SLURM二次开发的,可见其强大。

它的官网是:传送门。

准备可执行程序和输入文件

我们想提交一个计算任务,首先要准备好可执行程序和输入文件。

  • 可执行程序需要系统管理员进行编译安装,并配置好环境。
  • 输入文件需要每一位用户针对自己的计算问题进行配置,并上传到自己的账户目录下。

然后我们要看看自己登录的账户可用的资源情况,这样子才能有针对性的提交到合适的计算分区,申请相应的系统资源进行作业的计算。

这里我们假设:可执行程序的名字叫做 program.exe,输入文件的名字叫做 inputfile

查看可用计算节点信息

查看可用计算节点信息的命令是:

sinfo

天河系统的相应命令是:

yhi

显示如下(举例):

PARTITION AVAIL  TIMELIMIT  NODES  STATE  NODELIST
debug        up      30:00     10  drain  cn[1-2]
debug        up      30:00     10  alloc  cn[3-4]
debug        up      30:00     10   idle  cn[5-6]

说明:

关键词含义
PARTITION分区名,大型集群为了方便管理,会将节点划分为不同的分区设置不同权限
AVAIL可用状态:up 可用;down 不可用
TIMELIMIT该分区的作业最大运行时长限制, 30:00 表示30分钟,如果是2-00:00:00表示2天,如果是infinite表示不限时间
NODES节点的数量
STATE节点的状态:drain: 排空状态,表示该类结点不再分配到其他;idle: 空闲状态;alloc: 被分配状态

通过查看系统可用资源情况,我们就知道了要将计算任务提交到那里了,比如例子中的debug计算分区。

提交作业进行计算

接下来应该就是使用slurm作业管理系统进行作业提交了,常用的提交方式有2种,分别介绍如下:

方式1:使用srun直接执行可执行程序

在命令行终端直接执行srun命令进行作业提交计算:

srun -N 2 -n 24 -p debug program.exe < inputfile

天河系统的相应命令是:

yhrun -N 2 -n 24 -p debug program.exe < inputfile

参数说明如下:

关键词含义
srunsrun是slurm作业管理系统并行执行mpi程序的命令,类似mpirun
-N任务所需的总节点数
-n任务所需的总核数
-p任务申请的计算分区名称,刚刚用sinfo查询过,记得吗?
program.exe可执行程序名称
inputfile输入文件的名称,”<”简单讲,就是把inputfile文件给program.exe

备注:
1. 有的程序不需要特别指定输入文件的名称,会自动寻找,那么就不需要写 < inputfile 了。
2. 关于结果输出:
1. 如果程序有内置的输出文件名,那么就会写到默认的输出文件中;
2. 如果没有的话,使用 srun 提交的任务的输出会显示在当前屏幕中;
3. 如果想将输出结果定向到别的文件,可以使用例如 > outputfile 的写法,将输出结果写到 outputfile 文件中。
3. 不过要注意的是,在有登录节点和计算节点的大型集群中,使用 srun 命令提交任务,会由于用户的当前终端关闭而导致任务断掉,因此建议用户使用下面的方式提交组偶也。

方式2:使用sbatch提交批处理脚本进行任务计算

这种方式是最为推荐的方式,先编写一个脚本(别担心,很简单),然后用提交命令提交这个脚本即可。

编写脚本

使用文本编辑器(例如vim等),创建一个用于提交作业的脚本文件,例如名为sub.sh的文件。

vim sub.sh

然后写入脚本内容

#!/bin/bash
srun -N 2 -n 24 -p debug program.exe < inputfile

天河系统的相应命令是:

yhrun -N 2 -n 24 -p debug program.exe < inputfile

第一行表示这个文件是一个bash的脚本文件。
第二行表示我要用srun命令,申请2个节点,一共24个cpu核,在debug分区,使用program.exe程序计算inputfile输入文件所设定的具体计算任务。

这个和方式1种的命令,完全相同。

提交脚本

我们用命令将刚刚写的脚本提交一下,放到后台,这样子就不担心因为当前终端关闭而导致任务断掉的问题了,命令为:

sbatch -N 2 -n 24 -p debug sub.sh  

天河系统的相应命令是:

yhbatch -N 2 -n 24 -p debug sub.sh

参数说明如下:

关键词含义
sbatchsbatch是slurm作业管理系统提交批处理脚本的命令
-N任务所需的总节点数
-n任务所需的总核数
-p任务申请的计算分区名称
sub.sh脚本的名字,我们起的名字是sub.sh

使用这种方式提交的任务,会自动生成一个名为slurm-jobid.out的文件,其中”jobid”是slurm分配给这个任务的具体编号数字。里面会有除了程序特殊指定,或用户重定向以外的所有作业的标准输出和错误信息。当计算任务出现错误的时候,我们也是第一时间查看该文件,寻找原因。

查看作业状态

如果我们想查看一下当前用户的作业状态,可以使用如下命令:

squeue

天河系统的相应命令是:

yhqueue
或
yhq

显示如下(举例):

JOBID   PARTITION  NAME     USER       ST  TIME      NODES NODELIST(REASON)
100001  debug      sub.sh   zhenggang  R   00:05:00  1     cn6

参数说明如下:

关键词含义
JOBIDjob的id号,每个成功提交的任务都会有唯一的id
PARTITION计算分区名
NAME任务名,默认以提交脚本的名称当作任务名
USER用户名,提交该任务的用户名
ST任务状态:PD排队;R运行;S挂起;CG正在退出
TIME任务运行时间,例子中为5分钟
NODES任务作占节点数,例子中为1个
NODELIST(REASON)任务所占节点列表,如果是排队状态的任务,则会给出排队原因

备注:常见排队原因:

  • AssociationResourceLimit:关联的资源限制已满 — 账户有使用节点数限制,已经用满了。
  • Resources:当前可用资源不能满足作业需求 — 系统的可用节点资源不足
  • Dependency:作业的依赖关系未满足 — 作业之间有依赖关系,依赖的作业没完成
  • PartitionDown:作业所在的分区处于 down 状态 — 分区down,所以节点不可用。

取消作业

如果提交作业后,发现有些输入文件参数设置错了,或者其他原因想停止这个作业,可以先使用squeue(或yhq)找到该作业的id号,如100001,然后使用如下命令杀掉任务:

scancel 100001

天河系统的相应命令是:

yhcancel 100001

进阶

关于slurm作业管理系统,还有非常丰富的内容,本文仅给出了最最常用的几个命令。如果想深入了解,可以关于以后的文章。

比如:
- 如何给任务起名字,让每个任务不一样
- 如何限制任务的运行时间
- 如何申请特定节点,排除特定的节点
- 如何查看作业运行的详细信息,比如提交目录、运行耗时
- 如何设置作业之间的依赖关系,让某个作业在另一个之后才运行

不过这些通常用户用到的不多,如果想知道的话,留言哦。

我的个人网站:传送门

这篇关于slurm作业管理系统怎么用?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/641019

相关文章

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

作业提交过程之HDFSMapReduce

作业提交全过程详解 (1)作业提交 第1步:Client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。 第2步:Client向RM申请一个作业id。 第3步:RM给Client返回该job资源的提交路径和作业id。 第4步:Client提交jar包、切片信息和配置文件到指定的资源提交路径。 第5步:Client提交完资源后,向RM申请运行MrAp

电脑桌面文件删除了怎么找回来?别急,快速恢复攻略在此

在日常使用电脑的过程中,我们经常会遇到这样的情况:一不小心,桌面上的某个重要文件被删除了。这时,大多数人可能会感到惊慌失措,不知所措。 其实,不必过于担心,因为有很多方法可以帮助我们找回被删除的桌面文件。下面,就让我们一起来了解一下这些恢复桌面文件的方法吧。 一、使用撤销操作 如果我们刚刚删除了桌面上的文件,并且还没有进行其他操作,那么可以尝试使用撤销操作来恢复文件。在键盘上同时按下“C

webm怎么转换成mp4?这几种方法超多人在用!

webm怎么转换成mp4?WebM作为一种新兴的视频编码格式,近年来逐渐进入大众视野,其背后承载着诸多优势,但同时也伴随着不容忽视的局限性,首要挑战在于其兼容性边界,尽管WebM已广泛适应于众多网站与软件平台,但在特定应用环境或老旧设备上,其兼容难题依旧凸显,为用户体验带来不便,再者,WebM格式的非普适性也体现在编辑流程上,由于它并非行业内的通用标准,编辑过程中可能会遭遇格式不兼容的障碍,导致操

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

工厂ERP管理系统实现源码(JAVA)

工厂进销存管理系统是一个集采购管理、仓库管理、生产管理和销售管理于一体的综合解决方案。该系统旨在帮助企业优化流程、提高效率、降低成本,并实时掌握各环节的运营状况。 在采购管理方面,系统能够处理采购订单、供应商管理和采购入库等流程,确保采购过程的透明和高效。仓库管理方面,实现库存的精准管理,包括入库、出库、盘点等操作,确保库存数据的准确性和实时性。 生产管理模块则涵盖了生产计划制定、物料需求计划、

速盾高防cdn是怎么解决网站攻击的?

速盾高防CDN是一种基于云计算技术的网络安全解决方案,可以有效地保护网站免受各种网络攻击的威胁。它通过在全球多个节点部署服务器,将网站内容缓存到这些服务器上,并通过智能路由技术将用户的请求引导到最近的服务器上,以提供更快的访问速度和更好的网络性能。 速盾高防CDN主要采用以下几种方式来解决网站攻击: 分布式拒绝服务攻击(DDoS)防护:DDoS攻击是一种常见的网络攻击手段,攻击者通过向目标网

禁止复制的网页怎么复制

禁止复制的网页怎么复制 文章目录 禁止复制的网页怎么复制前言准备工作操作步骤一、在浏览器菜单中找到“开发者工具”二、点击“检查元素(inspect element)”按钮三、在网页中选取需要的片段,锁定对应的元素四、复制被选中的元素五、粘贴到记事本,以`.html`为后缀命名六、打开`xxx.html`,优雅地复制 前言 在浏览网页的时候,有的网页内容无法复制。比如「360