SLURM集群管理系统介绍

网友投稿 1999 2022-05-29

SLURM (Simple Linux Utility for Resource Management)是一种可用于大型计算节点集群的高度可伸缩和容错的集群管理器和作业调度系统。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,信号等;

SLURM集群管理系统介绍

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

如:使用 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

如: 提交批处理作业example.sh:

$ sbatch example.sh

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

提交资源分配请求;

作业排队等待资源分配;

执行用户指定的命令;

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

如:使用 2 个节点,4 个进程,预计运行时间 100 秒):

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

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

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

yhacct:查看历史作业信息

yhalloc:分配资源

yhbatch:提交批处理作业

yhcancel:取消作业

yhcontrol:系统控制

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

yhqueue/yhq:查看队列状态

yhrun:执行作业

MapReduce 项目管理 ProjectMan

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:用Unity做仿真,这款图表插件我不允许你不知道
下一篇:Python教程之正则表达式详解(基础篇)
相关文章