文章目录

  • 作业启动原理
    • 交互式作业启动
    • 批处理作业启动
    • 分配式作业启动

作业启动原理

​ 在slurm下,用户可以在三种模式下运行作业。

  1. 第一种也是最简单的模式是交互模式,其中stdout和stderr实时显示在用户终端上,stdin和信号可以透明地从终端转发到远程任务。

  2. 第二种模式是批处理或排队模式,在这种模式下,作业将排队,直到满足资源请求,此时slurm将作为提交用户运行作业。

  3. 第三个模式分配模式,作业被分配给请求用户,在该模式下,用户可以通过脚本或在srun生成的子shell中手动运行作业步骤。

srunslurmctld请求资源分配和作业步骤启动,如果请求被批准,它将用作业id、已分配节点列表、作业步骤凭据等进行响应,srun然后初始化stdio连接的侦听端口,并连接到所分配节点上的slurmd,请求启动远程进程。slurmd开始执行任务,并连接回srun进行stdout和stderr。下面将更详细地描述该过程和其他启动模式。

  • 步骤一:srun连接到slurmctld请求资源
  • 步骤二:slurmctld相应连接,包括节点列表,状态信息,作业步凭证等
  • 步骤三:srun打开作业IO连接的侦听端口,然后将运行作业步骤请求发送到slurmd
  • 步骤四:slurmd启动作业步并连接回标准输出,标准错误

交互式作业启动

​ 交互模式以用户运行srun开始执行。srun会向slurmctld发送一个信息,来请求资源和作业步的初始化。由于资源分配优先级的问题,srun可能不会立即得到回应。当资源可用时,slurmctldsrun发送回应信息,该信息包括作业步的认证,可用节点列表等。收到回复信息后srunslurmd发送作业步初始化请求,slurmd判断收到的请求作业是否合法,然后回复srun。每一个slurmd调用一个作业线程来处理请求,对每一个请求返回一个任务线程,任务线程连接srun主机的端口来准备stdout和stderr线程。一旦此连接成功,任务线程便开始初始化用户在计算节点上的运行环境,工作目录和所需资源等。一旦用户进程退出,任务线程便记录退出时状态然后发送任务结束信息给srun,当所有的进程结束,作业线程便退出。

​ 最后一旦所有任务完成,srun将向slurmctld释放分配的节点,然后以适当的状态退出。当slurmctld收到通知,表示srun不再需要分配的节点时,它会发出请求,要求在分配中的每个slurmd上运行尾声。当slurmd报告结束日志成功运行时,节点将返回到分区。

交互式作业启动分析

批处理作业启动

​ 批处理作业提交,srunslurmctld发送一个批处理作业请求,该请求包含作业stdin/stderr的位置,当前工作目录环境,请求的节点数。slurmctld将所有的请求按照某种优先级队列规则对他们进行排序。一旦资源满足并且作业优先级当前可以执行,slurmctld将给该作业分配资源并且告诉第一个被分配的节点该作业可以开始执行。若此时作业为一个包含多个srun命令的作业脚本。计算节点上的slurmd应答slurmctld的运行作业请求、初始化作业线程、任务线程。脚本中的srun进程检测到分配给它的资源,然后开始初始化作业步,准备执行。当作业步执行完毕,脚本中的srun进程通知slurmctld并终止执行。而作业脚本此时继续执行下一条srun进程。一旦作业脚本执行完毕,运行该脚本的任务线程便收集退出状态,将任务退出信息发送给slurmctldslurmctld到作业执行完毕,要求所有分配的节点执行epilog程序。当所有slurmd回应成功执行完毕epilog后,节点才会被归还给作业分区。

批处理作业启动实例分析:

分配式作业启动

​ 在分配模式下,用户希望分配作业,并在该分配下以交互方式运行作业步。Srunslurmctld发送一个分配请求,如果资源可分配,则slurmctld应答srunSrun在用户终端产生一个shell以便其使用资源。Shell中的srun读取环境变量和用户命令,并通知slurmctld,此时执行的作业为当前作业下的一个作业步。Slurmctld记录作业步信息并返回一个作业认证。接下来Srun用和交互模式相同的方法来初始化作业步。当用户退出shell,原始的srun接收到退出状态信息,通知slurmctld作业已完成,并退出。shell退出,则认定作业执行完毕。Slurm control daemon在每一个被分配节点上运行epilog程序,当所有被分配节点运行完毕该程序,节点才会被放回分区。

分配式作业启动分析

分配资源争用情况:

Slurm作业启动原理相关推荐

  1. 基于 Docker 的 Slurm 作业管理系统

    基于 Docker 的 Slurm 作业管理系统 阿里云服务器设置 参考视频:https://www.bilibili.com/video/BV177411K7bH Step 1 -申请阿里云服务器 ...

  2. slurm作业提交系统常用命令

    常用术语 user:用户名 node:计算节点 core:cpu 核 job:作业 job step:作业步,单个作业可以有多个作业步 partition:分区,作业需在特定分区中运行 QOS:服务质 ...

  3. 常用Slurm作业投递及查询命令

    1. 集群常用概念 job step: 作业步,单个作业可以有多个作业步 partition:分区,作业需要在特定分区中运行(理解为定义了队列,每个队列中包含不同节点) QOS:服务质量,可理解为用户 ...

  4. Slurm作业提交、查询、修改等常用命令

    Slurm作业提交.查询常用命令 1 集群常用概念 2 Slurm常用基本命令 3 Slurm作业提交 3.1 交互模式:srun 3.2 批处理模式:sbatch 3.3 分配模式:salloc 4 ...

  5. netlogon启动后停止_自耦变压器降压启动原理

    变压器起动方式有哪些 1.已运行变压器停下后再启动时,直接空载启动(低压侧负荷先断开):小型变压器一般采用直接启动. 2.新安装的630KVA以上容量宜采用先空载充电三次,检查无异常后再正常投运:超高 ...

  6. 第03课:Spring Boot 启动原理

    引言 Spring Boot 大大简化了我们的开发配置,节省了大量的时间,确实比较方便.但是对于新手来说,如果不了解个中原理,难免会遇到坑. 本文作者将带领大家走近神秘的 Spring Boot,一步 ...

  7. 【Android 安全】DEX 加密 ( Application 替换 | Android 应用启动原理 | ActivityThread 后续分析 | Application 替换位置 )

    文章目录 一.ActivityThread 后续分析 二.ActivityThread 相关源码 三.Application 替换位置 dex 解密时 , 需要将 代理 Application 替换为 ...

  8. 面试官:能说下 SpringBoot 启动原理吗?

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多 Spri ...

  9. iOS中的应用启动原理

    iOS中的应用启动原理 来源: http://m.blog.csdn.net/article/details?id=50530090  http://m.warting.com/program/201 ...

最新文章

  1. 直接依赖,间接依赖,可选依赖,排除依赖,依赖冲突
  2. C# 中获取CPU序列号/网卡mac地址
  3. android 9.0 https 适配,android9.0适配HTTPS:not permitted by network security policy'
  4. wxpython问卷调查界面_调查问卷使用说明书,问卷就要这么设计!
  5. 【Spring-Boot】【入门 01】第一个 Spring Boot 程序
  6. 《数据库SQL实战》从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。 注意对于重复的emp_no进行忽略。
  7. 3d饼图 vue_在Vue中使用highCharts绘制3d饼图
  8. 最新版云铺购ds网系统全开源可运营程序源码
  9. sohutv cachecloud启动
  10. python read_csv函数_Python pandas.read_csv()函数
  11. 关于idea中springboot主启动类没有绿色启动的问题
  12. (附源码)springboot工作计划管理软件 毕业设计 181638
  13. win2003 64位系统IIS6.0 32位与64位间切换
  14. wifi万能钥匙破解隔壁无线网以及查看破解密码
  15. 宇信科技有限公司面试题目
  16. 关于Linux系统重启过慢问题解决方案
  17. 新月剑痕十项属性内存修改器
  18. 神经网络学习笔记3——Transformer、VIT与BoTNet网络
  19. HTML-网页-3D旋转相册-创意相册
  20. 模糊查询下划线“_”时查询的是全部数据

热门文章

  1. Java设计模式 Design Pattern:包装模式 Decorator Pattern
  2. 冰雪第一天历险 - 2014 年的冬天第一场站得住的雪?
  3. java的接口常用命名_Java命名和目录接口,Java Naming and Directory Interface,音标,读音,翻译,英文例句,英语词典...
  4. 判断清浊音 matlab,基于MATLAB的语音信号的清浊音分析.doc
  5. 微信6.0 ActionBar样式
  6. 蓝牙认证,蓝牙BQB认证,蓝牙BQB测试内容,蓝牙BQB认证多少钱?蓝牙BQB认证流程
  7. MySQL面试问题包含答案仅参考
  8. 微软打印机驱动服务器,无法通过 Windows Server 中的 Windows 更新来安装打印机驱动程序 - Windows Server | Microsoft Docs...
  9. 打印机驱动无法安装到计算机是,打印机驱动在电脑哪个位置 打印机驱动安装不上怎么办【详解】...
  10. 安徽省2019c语言二级答案,安徽省计算机等级二级考试真题C语言.doc