Ubuntu服务器安装配置slurm (Ubuntu 22.04 LTS)
1. slurm简介
Slurm 全称 Simple Linux Utility for Resource Management。通常被用于大型Linux服务器 (超算) 上,作为任务管理系统。本文详细讲述如何在 Ubuntu 22.04 LTS 上安装slurm,并进行简单的配置。
其实网上相关的教程已经非常多,但在旧版本的Ubuntu上安装slurm时,通常需要安装一个名为slurm-llnl的软件包。但Ubuntu 22.04 LTS 的软件源不包含slurm-llnl,强行安装就会报出如下的错误:
$ sudo apt install slurm-llnl
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package slurm-llnl
2. slurm的安装步骤
Step 1. 安装依赖的软件包
- slurmd: 完成计算节点的任务(启动任务、监控任务、分层通信)
- slurmctld: 完成管理节点的任务(故障切换、资源监控、队列管理、作业调度)
$ sudo apt update
$ sudo apt install slurm-wlm
# `slurmd`: compute node daemon
$ sudo apt install slrumd (提示已安装)
# `slurmctld`: central management daemon
$ sudo apt install slurmctld (提示已安装)
Step 2. 找到slurm-wlm-configurator.html文件,进入该目录下
# 输入以下命令,并
$ dpkg -L slurmctld | grep slurm-wlm-configurator.html
/usr/share/doc/slurmctld/slurm-wlm-configurator.html
$ cd /usr/share/doc/slurmctld
$ sudo chmod +r slurm-wlm-configurator.html
Step 3. 利用 web 生成配置文件
$ python3 -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
打开浏览器,输入 http://:8000/,进入配置页面,点击进入 slurm-wlm-configurator.html 按照自己的需求填写设置。
Cluster Name:随意起名
Control Machines:控制节点的计算机名
Compute Machines:计算机名、ip地址、分区名和任务时间限制
cpus:虚拟机直接指定虚拟cpu数量
Sockets: 物理机不指定cpus,指定cpu插槽
CoresPerSocket: 物理机每个插槽有多少core
ThreadsPerCore: 物理机每个core有多少个线程,超线程的CPU此数字为2
slurmuser:指定为root用户
Process Tracking:选择 LinuxProc: Use parent process ID records, processes can escape from Slurm control
web 生成slurm.conf
填写完毕后,点击submit,将生成的内容拷贝进 /etc/slurm/slurm.conf (slurm 的配置文件)
# 创建
$ sudo touch /etc/slurm/slurm.conf
# 将网页生成的内容 copy 进来
$ sudo vim /etc/slurm/slurm.conf
# ctrl + v
Step 4. 手动创建slurm的输出文件目录
$ sudo mkdir /var/spool/slurmd
$ sudo mkdir /var/spool/slurmctld
Step 5. 启动 slurm 服务
# 启动 slurmd, 日志文件路径为 `/var/log/slurmd.log`
$ sudo systemctl start slurmd
# 启动 slurmctld, 日志文件路径为 `/var/log/slurmctld.log`
$ sudo systemctl start slurmctld
启动后无法正常使用 slurm 的话,先查看slurmd和slurmctld的状态,打开日志查看报错。
# 查看 slurmd 的状态
$ sudo systemctl status slurmd
# 查看 slurmctld 的状态
$ sudo systemctl status slurmctld
3. slurm.conf 中几个关键 column 的填写
C1. ClusterName
集群名,随便取
C2. SlurmctldHost
管理节点的主机名
# 获取主机名
$ hostname -s
mu01
C3. SlurmUser
最好 SlurmUser=root
,权限最高,填写日志文件不会由于权限问题报错
C4. 管理节点和计算节点的配置(slurm.conf的最后三行)
此处以单节点集群举例(单个节点既作为管理节点,又作为计算节点)
EnforcePartLimits=ALL
NodeName=mu01 CPUs=36 State=UNKNOWN # 本行可以通过 `slurmd -C` 获取
PartitionName=compute Nodes=mu01 Default=YES MaxTime=INFINITE State=UP # 创建一个名为compute的队列
slurmd -C
的输出:
$ slurmd -C
NodeName=mu01 CPUs=36 Boards=1 SocketsPerBoard=1 CoresPerSocket=10 ThreadsPerCore=2 RealMemory=63962
脚本内容111.sh
#!/bin/bash
#SBATCH -p debug
#SBATCH -J test
#SBATCH -N 1
#SBATCH -n 4
#SBATCH -o out.log
#SBATCH -e error.log
mpirun -np 4 vasp_std
作业提交命令:(在slurm安装配置完成,提交作业之前需要重启一次服务器)
sbatch -n 4 111.sh
sbatch 111.sh
作业队列:squeue
作业状态:sinfo文章来源:https://www.toymoban.com/news/detail-731930.html
作业输出:tail -f out.log文章来源地址https://www.toymoban.com/news/detail-731930.html
到了这里,关于Ubuntu服务器安装配置slurm (Ubuntu 22.04 LTS)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!