在上一篇中我们简要介绍了 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. 扫描到U盘但找不到文件
  2. Spring Cloud Hoxton正式发布,Spring Boot 2.2.x不再孤单
  3. Modal提示框插件的使用
  4. JavaScript变量和对象参数传值问题
  5. 合并远程仓库到本地_git远程仓库
  6. 计算机风机不运转也启动了怎么办,电脑不开机风扇一直转怎么解决_电脑无法开机风扇一直转怎么办-win7之家...
  7. 北京学python 价格怎么样_北京学习Python需要多少钱
  8. Git上传项目到github
  9. mybatis 插入数据时返回主键
  10. .NET 5中的EF Core 5数据迁移:在单独的库中并自动部署
  11. 会vue再上手uni-app难度大吗?
  12. 数据可视化图表的类型和特点
  13. MyBatis-Plus-Generator配置
  14. Java 面向对象 知识点基础浅谈
  15. windows-更新包
  16. SAP UI5 应用开发教程之六十一 - 在 SAP UI5 应用里绘制甘特图 Gantt Chart 试读版
  17. 深度学习之文本分类总结
  18. 概率论应用题,模型汇总(排去抽球模型)
  19. 从“金融IT”乙方转到甲方的职场感悟
  20. k8s 部署pod到指定node

热门文章

  1. 12C 数据库之坑爹又坑队友的无故链接不上问题处理
  2. Matlab系列之信号解调
  3. 【Unity Shader】Unity中阴影映射标准制作流程
  4. 教你如何在网站上挂qq聊天功能
  5. ie加载项存在残留是什么_注册表删除IE加载项
  6. 【光电工程实训】光通信与光纤通信 电子元器件认知 万用表测量参数 元件特性 激光传声实验 自由空间光通讯 光纤光通信 全反射
  7. pcb外观维修_PCB线路板的维修知识
  8. 怎样用计算机进入手机驱动程序,小米4驱动怎么安装以连接电脑的USB驱动程序...
  9. cryptohack block ciphers
  10. 倍加福UC6000-30GM-IUR2-V15超声波传感器