在上一篇中我们简要介绍了 LSF 作业管理系统,下面将介绍 SLURM 资源管理系统。

简介

SLURM (Simple Linux Utility for Resource Management)是一种可用于大型计算节点集群的高度可伸缩和容错的集群管理器和作业调度系统,被世界范围内的超级计算机和计算集群广泛采用。SLURM 维护着一个待处理工作的队列并管理此工作的整体资源利用。它以一种共享或非共享的方式管理可用的计算节点(取决于资源的需求),以供用户执行工作。SLURM 会为任务队列合理地分配资源,并监视作业至其完成。如今,SLURM 已经成为了很多最强大的超级计算机上使用的领先资源管理器,如天河二号上便使用了 SLURM 资源管理系统。

常用命令

下面是一些最常用的 SLURM 命令:

sacct:查看历史作业信息

salloc:分配资源

sbatch:提交批处理作业

scancel:取消作业

scontrol:系统控制

sinfo:查看节点与分区状态

squeue:查看队列状态

srun:执行作业

常用环境变量

下表是 SLURM 环境变量:

变量

说明

SLURM_NPROCS

要加载的进程数

SLURM_TASKS_PER_NODE

每节点要加载的任务数

SLURM_JOB_ID

作业的 JobID

SLURM_SUBMIT_DIR

提交作业时的工作目录

SLURM_JOB_NODELIST

作业分配的节点列表

SLURM_JOB_CPUS_PER_NODE

每个节点上分配给作业的 CPU 数

SLURM_JOB_NUM_NODES

作业分配的节点数

HOSTNAME

对于批处理作业,此变量被设置为批处理脚本所执行节点的节点名

资源管理系统实体

SLURM 资源管理系统的管理对象包括:节点,分区,作业和作业步。

节点:Node

即指计算节点

包含处理器、内存、磁盘空间等资源

具有空闲、分配、故障等状态

使用节点名字标识

分区:Partition

节点的逻辑分组

提供一种管理机制,可设置资源限制、访问权限、优先级等

分区可重叠,提供类似于队列的功能

使用分区名字标识

作业:Job

一次资源分配

位于一个分区中,作业不能跨分区

排队调度后分配资源运行

通过作业 ID 标识

作业步:Jobstep

通过 srun 进行的任务加载

作业步可只使用作业中的部分节点

一个作业可包含多个作业步,可并发运行

在作业内通过作业步 ID 标识

作业运行模式

SLURM 系统有三种作业运行模式:

交互模式,以 srun 命令运行;

批处理模式,以 sbatch 命令运行;

分配模式,以 salloc 命令运行。

交互模式

交互模式作业的使用过程为:

在终端提交资源分配请求,指定资源数量与限制;

等待资源分配;

获得资源后,加载计算任务;

运行中,任务 I/O 传递到终端;

可与任务进行交互,包括 I/O,信号等;

任务执行结束后,资源被释放。

例如使用 srun 申请 4 个进程生成一个作业步:

$ srun -n 4 ./example

批处理模式

批处理模式作业的使用过程为:

用户编写作业脚本;

提交作业;

作业排队等待资源分配;

分配资源后执行作业;

脚本执行结束,释放资源;

运行结果定向到指定的文件中记录。

下面给出作业脚本示例:

#!/bin/env bash

# file: example.sh

# set the number of nodes

#SBATCH --nodes=2

# set the number of tasks (processes) per node

#SBATCH --ntasks-per-node=4

# set partition

#SBATCH --partition=example-partition

# set max wallclock time

#SBATCH --time=2:00:00

# set name of job

#SBATCH --job-name=example-mpi4py

# set batch script's standard output

#SBATCH --output=example.out

# mail alert at start, end and abortion of execution

#SBATCH --mail-type=ALL

# send mail to this address

#SBATCH --mail-user=user@mail.com

# run the application

srun python example-mpi4py.py

用以下命令提交批处理作业:

$ sbatch example.sh

分配模式

分配模式作业的使用过程为:

提交资源分配请求;

作业排队等待资源分配;

执行用户指定的命令;

命令执行结束,释放资源。

分配模式通过 salloc 命令运行,举例如下(使用 2 个节点,4 个进程,预计运行时间 100 秒):

$ salloc -N 2 -n 4 -p example-partition -t 100 /bin/bash

资源分配请求成功后会进入 bash shell 终端,在其中可以使用 srun 交互式地执行作业任务。在终端输入 exit 命令或 Ctrl+D 退出分配模式。

天河二号上的 SLURM 管理系统

天河二号上使用的是 SLURM 资源管理系统,不过天河二号上使用的 SLURM 命令都是将标准的 SLURM 命令开头的 s 改成了 yh,如下:

yhacct:查看历史作业信息

yhalloc:分配资源

yhbatch:提交批处理作业

yhcancel:取消作业

yhcontrol:系统控制

yhinfo/yhi:查看节点与分区状态

yhqueue/yhq:查看队列状态

yhrun:执行作业

以上介绍了 SLURM 资源管理系统,在下一篇中我们将介绍 MPI-3 的新特性。

slurm跑python_SLURM 资源管理系统相关推荐

  1. slurm跑python_Slurm提交MPI作业

    Slurm提交MPI作业 首先准备一个MPI程序,这里使用python语言的mpi4py库写了一个 helloworld.py #!/usr/bin/env python ""&q ...

  2. 基于Vue的校园资源管理系统(前端代码)

    基于Vue的校园资源管理系统(前端代码) 作者:Jackshijin 项目背景 这是本人在毕业的时候选择的毕业设计方向,指导老师团队的课题有小程序.安卓开发.机器学习和嵌入式,而我选择了Web...因 ...

  3. Mesos:一个开源的分布式弹性资源管理系统

    2019独角兽企业重金招聘Python工程师标准>>> Mesos是一个开源的资源管理系统,可以对集群中的资源做弹性管理. Mesos是高仿google内部的资源管理系统borg实现 ...

  4. 可视化排班管理_企业人事资源管理系统

    经过市场调研和分析,发现部分企业的人力资源管理在绩效考核.信息传递和任务管理方面存在一些问题.为企业开发的人力资源管理系统的重点是利用现代高效的运作方式,开发和管理组织中比较昂贵的资源,实现人力资源管 ...

  5. web端项目管理/工程项目劳务资源管理系统/考勤审批/人员招聘/企业管理系统/工资管理/入职管理/组织结构/财务管理/大数据指挥中心/劳务系统/岗位工种/智慧工程监管/劳务app原型/axure原型

    web端项目管理/工程项目劳务资源管理系统/考勤审批/人员招聘/企业管理系统/大数据智慧中心/工资管理/入职管理/组织结构/财务管理/大数据指挥中心/劳务系统/岗位工种/axure原型/rp原型 Ax ...

  6. 一个资源管理系统的设计--基于cgroup机制

    设计一个资源管理系统对于一个综合性的资源访问系统来说是十分必要的,而好的设计一定是不复杂的,甚至说是十分简单的,原因就是精简机构,消除冗余,或者说精兵简政在任何时候任何方面总是必要的,我们不希望管理机 ...

  7. 货拉拉 Android 动态资源管理系统原理与实践(上)

    点击上方蓝字关注我,知识会给你力量 ❝ jary,货拉拉高级客户端工程师,目前负责货拉拉App Android端稳定性提升,包体积优化相关工作. ❞ 前言 随着公司业务的扩展,货拉拉用户端apk包的体 ...

  8. 北大青鸟资源管理系统

    S1总复习(6)北大青鸟管理系统 目录 S1总复习(6)北大青鸟管理系统 数据库操作 主窗口 界面 代码 添加窗口 界面 代码 查询窗口 界面 代码 数据库操作 添加几条数据 主窗口 界面 代码 us ...

  9. 货拉拉 Android 动态资源管理系统原理与实践(下)

    点击上方蓝字关注我,知识会给你力量 so资源动态化方案 so资源打包问题 在打包so资源的过程中,我们遇到了如下问题. 如何移除apk中的so文件,并将他们收集起来? 如何将多个so文件压缩打包,并生 ...

最新文章

  1. 从输入字段读取属性时,HTML编码丢失
  2. 如何关闭jdk自动更新提示
  3. 网站结构优化——不能忽视的优化重点
  4. java中io流如何创建一个文件_,Java中Io流操作-File类的常用操作-创建文件,创建文件夹...
  5. List - Map 工具类,list转为map
  6. 删除选修c语言课程的女生成绩记录,pta10-1 查询没有选修‘C语言‘课程的学生 (10分)...
  7. 语言谓词函数isprime_G?del完备性定理 —— 一阶谓词逻辑演绎系统 Part II
  8. OpenShift 4 - 通过DaemonSet在指定Node上运行守护程序
  9. PyQT5 helloworld教程(转载)
  10. MDC记录activiti流程ID
  11. Git 可视化管理工具 - Sourcetree 使用指南
  12. 手把手带你从零开始完整开发经典游戏【俄罗斯方块】,全部逻辑只用不到200行代码。
  13. 数据分析--数据预处理
  14. 如何通过AWS VPC Peering云服务,解决公共云的局限性?
  15. 黑群晖二合一安装不了套件_家庭NAS部署指南(二)——如何自己动手安装一台黑群晖主机...
  16. 《Flutter实战》开源电子书
  17. 看了下华为工资,我不加班了
  18. [Chatter] 架构设计是做甚么
  19. Django小项目:云笔记项目
  20. 鸿蒙系统(HarmonyOS)--第一章

热门文章

  1. 时间序列预测 预测时间段_什么是时间序列预测
  2. Qt 方向键移动焦点
  3. HDU 4411Arrest(最小费用最大流)
  4. vlc的应用之九:用vlc串流摄像头
  5. 不知道变年轻特效软件有哪些?这些有趣的app建议收藏
  6. 一键查询快递物流信息
  7. 笔录:ERP运维理论
  8. 如何解决C盘空间不足的问题?
  9. han_spring_new
  10. 要命的BP Send —— 断不下来