实施 SLURM(Simple Linux Utility for Resource Management)是一个相对复杂的过程,它涉及到安装、配置和管理多个组件,以建立一个高效的集群计算环境。在这篇文章中,我将详细介绍 SLURM 的实施步骤,包括安装、配置、启动、测试以及一些高级配置和集成方面的内容。
第一部分:引言
1.1 SLURM 简介
SLURM 是一个用于集群计算的作业调度系统,旨在有效地管理和分配计算资源。它是开源的,广泛用于科学计算、高性能计算(HPC)和大数据处理领域。通过 SLURM,用户可以提交作业,而系统会负责调度和分配资源,以确保作业能够在集群中顺利运行。
1.2 SLURM 组件
SLURM 主要由两个核心组件组成:
-
slurmd: 节点守护进程,运行在每个集群节点上。它负责接收作业任务,启动和监控计算进程,以及将计算结果返回给用户。
-
slurmctld: 控制守护进程,运行在集群的主节点上。它负责全局资源分配、作业调度和监控整个集群的状态。
此外,SLURM 还提供了其他一些辅助组件,如 slurmdbd(用于数据库支持)、sview(用于集群可视化监控)等。
第二部分:安装 SLURM
2.1 下载 SLURM
首先,从 SLURM 的官方网站(https://slurm.schedmd.com/)下载最新版本的 SLURM。你可以选择下载源代码并进行编译,或者使用预编译的二进制包。
bashCopy code
# 下载 SLURM 源代码 wget https://download.schedmd.com/slurm/slurm-x.x.x.tar.bz2 # 解压缩文件 tar -xjf slurm-x.x.x.tar.bz2
2.2 编译和安装
进入解压缩后的 SLURM 目录,执行以下命令编译和安装 SLURM。
bashCopy code
# 进入 SLURM 目录 cd slurm-x.x.x # 配置 SLURM ./configure # 编译 make # 安装 sudo make install
2.3 配置环境变量
为了让系统能够找到 SLURM 的可执行文件,需要将 SLURM 的 bin 目录添加到系统的 PATH 中。编辑用户的 .bashrc
文件或者系统的 /etc/profile
文件,添加如下行:
bashCopy code
export PATH=$PATH:/usr/local/slurm/bin
保存文件并执行以下命令以应用更改:
bashCopy code
source ~/.bashrc # 或者 source /etc/profile
第三部分:配置 SLURM
3.1 配置 slurm.conf
SLURM 的主要配置文件是 slurm.conf
,位于 /etc/slurm/
目录下。这个文件包含了集群的各种配置信息,如节点信息、队列设置、账户信息等。
以下是一个简化的 slurm.conf
示例:
iniCopy code
# slurm.conf 示例 ClusterName=MyCluster ControlMachine=master AuthType=auth/munge CheckpointType=checkpoint/none CryptoType=crypto/munge JobAcctGatherType=jobacct_gather/none # 节点配置 NodeName=node1 CPUs=4 State=UNKNOWN NodeName=node2 CPUs=4 State=UNKNOWN # 队列配置 PartitionName=batch Nodes=node[1-2] Default=YES MaxTime=24:00:00
你需要根据你的集群规模和需求修改这个文件。详细的配置选项可以在 SLURM 官方文档中找到。
3.2 配置 slurmdbd(可选)
如果你需要记录作业和集群统计信息,可以配置 SLURM 数据库守护进程(slurmdbd)。编辑 /etc/slurm/slurmdbd.conf
文件,配置数据库连接信息和其他选项。
3.3 启用 MUNGE(可选)
SLURM 使用 MUNGE(MUNGE Uid 'N' Gid Emporium)来进行身份验证。你可以在 SLURM 的配置文件中启用 MUNGE。编辑 /etc/slurm/slurm.conf
文件,在合适的位置添加如下行:
iniCopy code
AuthType=auth/munge
第四部分:启动 SLURM
4.1 启动 slurmd
在每个集群节点上启动 slurmd
守护进程:
bashCopy code
sudo slurmd
4.2 启动 slurmctld
在主节点上启动 slurmctld
守护进程:
bashCopy code
sudo slurmctld
第五部分:测试 SLURM
5.1 提交测试作业
使用 sbatch
命令提交一个简单的测试作业:
bashCopy code
sbatch -n 4 my_job_script.sh
其中,my_job_script.sh
是你的作业脚本,-n 4
指定使用 4 个核心。
5.2 查看作业状态
使用 squeue
命令查看当前队列中的作业状态:
bashCopy code
squeue
5.3 监控集群状态
使用 sinfo
命令查看集群节点的状态:
bashCopy code
sinfo
第六部分:用户管理
6.1 添加用户
使用 sacctmgr
命令进行用户管理。例如,添加一个新用户:
bashCopy code
sudo sacctmgr add user username