SLURM批处理调度系统介绍

SLURM (Simple Linux Utility for Resouce Management)

非常成熟的开源社区集群批处理调度系统。


介绍

  • 2008年左右起源于LLNL实验室, 最新版本20.11
  • 开源软件(约50万行c源码),开发和发布一直活跃
  • 用户群: Top10里有5家使用(天河HPC是其一)
  • 商业公司SchedMD提供顾问咨询服务
  • 完善的插件为用户提供较便利的扩展功能
  • 特点:结构清晰、功能丰富、接口明确

架构

SLURM由一组运行在控制节点与计算节点上的服务和一组用户命令组成

  • 控制节点:节点管理、分区管理、作业管理等(主要后台服务slurmctld,一般采用主从热备方式提供高可用性)
  • 计算节点:节点状态、作业状态与控制、IO流拷贝等(主要后台服务slurmd)

SLURM批处理调度系统介绍_第1张图片

SLURM批处理调度系统介绍_第2张图片

核心后台服务
  • slurmctld
  • slurmd
  • slurmdbd
  • slurmrestd

核心概念

  • Partition:分区,硬件上可看做是节点的逻辑划分,可以对分区设置约束,例如哪个用户可以使用,分区内的作业时限等。作业不能跨分区。软件上可看做是一个作业队列。
  • Job: 作业,用户提交的一个批处理作业
  • Job step: 作业步,属于某个作业的一组任务(可能串行也可能并行)
  • task: 任务,可认为一个在指定节点上执行的具体进程(process)
    SLURM批处理调度系统介绍_第3张图片

核心用户命令

客户端命令和slurm系统的网络后台程序进行交互,主要包括作业提交、作业修改、系统各种信息查询、运行环境控制配置等几个方面

  • sbatch 提交批处理作业
  • srun 执行并行作业
  • salloc 申请计算资源,srun可以在所申请资源环境下进行交互调试
  • scanel 取消作业
  • sinfo 查看分区和节点状态等
  • squeue 查看队列状态
  • scontrol 查看和更改系统设置参数
  • sacct 查看历史作业信息,记账信息
    SLURM批处理调度系统介绍_第4张图片

参考资料

你可能感兴趣的:(HPC/MPI,MPI)