通过我们详尽的 SLURM 安装和配置指南,释放您的 Linux 系统的全部潜力,实现高效本地作业调度和协调!
SLURM是什么?SLURM(简单的Linux资源管理系统)是一个开源的集群管理和作业调度系统,适用于各种大小的Linux集群。它为用户分配资源以执行作业,使用户能够运行他们的作业,提供了一个框架用于启动、执行和监控作业(通常是并行任务),并通过管理待处理作业队列来解决资源竞争的问题。
Slurm在Ubuntu WSL上安装 — Nabla CFD的博客 | BY 博客
在本指南中,我们将带你完成在本地Linux系统上安装和配置SLURM的步骤,使你能够优化计算任务,并轻松地对其进行安排和调度,无需任何努力!
1/ 安装SLURM系统在您的 Linux 系统上安装 SLURM 很简单。以下命令会安装 **munge**
(认证服务程序),**slurmd**
(SLURM 节点服务),**slurm-client**
(SLURM 客户端工具)和 **slurmctld**
(SLURM 控制服务)。
在终端中运行以下命令来安装所需的软件包:
sudo apt install munge slurmd slurm-client slurmctld
其中:
munge
是一个用于验证消息完整性的工具,slurmd
是 Slurm Workload Manager 的工作节点守护程序,slurm-client
提供了 Slurm 的客户端工具,slurmctld
是 Slurm Workload Manager 的控制守护程序。
生成 **slurm.conf**
文件以配置 SLURM 稍微有点复杂,但也不是很难。在浏览器中打开 **slurm-wlm-configurator.easy.html**
并按照说明生成这个配置文件。
要获取本地运行SLURM时的主机名(hostname),使用这个**hostname**
命令。
主机名将用于在您的本地机器上触发作业。如果您想在远程机器上运行作业,可以指定另一个主机名。此功能对于利用SLURM发挥HPC计算能力至关重要。本教程中不会涉及此功能。
这里有更多内容可以阅读: https://slurm.schedmd.com/quickstart.html
这里有一个slurm.conf的例子:
# 生成的slurm.conf文件由configurator.html创建。
# 请将此文件放置在集群中的所有节点上。
# 有关更多信息,请参阅slurm.conf手册页。
#
ClusterName=mycluster
SlurmctldHost=<Your HOSTNAME>
# 其他配置详情...
NodeName=<Your HOSTNAME> CPUs=2 State=未知 RealMemory=1200
PartitionName=local 节点=ALL 默认=YES 最大时间=无限
State=运行
将文件slurm.conf放到/etc/slurm目录下。
3/: 开启SLURM服务:启用SLURM服务功能以确保它们在系统启动时自动运行:
执行以下命令以启用Slurmctld和Slurmd服务。
sudo systemctl enable slurmctld
sudo systemctl enable slurmd
运行SLURM控制端和节点端,
运行命令:sudo service slurmctld 启动
和 sudo service slurmd 启动
。这些命令用于启动Slurm控制守护进程(slurmctld)和工作节点守护进程(slurmd)。
检查它们是否在运行:
sudo service slurmd slurmctld
运行此命令以启动slurmd和slurmctld服务。
你应该看到类似的内容。
● slurmd.service - Slurm 节点守护进程
加载状态: 已加载(加载状态)(/lib/systemd/system/slurmd.service; 启用; 默认已启用)
当前状态: 活跃 (运行中) 自 2024-06-03 14:48:15 CEST;已运行了 20 小时
文档: man:slurmd(8)
主进程 ID: 314 (slurmd)
进程数: 1
内存使用: 1.6M
控制组(cgroup): /system.slice/slurmd.service
└─314 /usr/sbin/slurmd -D -s
2024-06-03 15:53:21 <HOSTNAME> slurmd[314]: slurmd: 调试: _handle_node_reg_resp: slurmctld 回传了 8 个 TRES。
5/ 开始运行 munge 服务端
启动 Munge 认证服务程序,这对于 SLURM 的正常运行至关重要。
sudo /etc/init.d/munge start // 注释:启动名为“munge”的服务
//
sudo service munge start // 注释:启动名为“munge”的服务
``
查看一下Munge服务的状态怎么样。
sudo service munge 状态检查
你可以看到这样的东西。
● munge.service - MUNGE认证服务
加载: 已加载 (/lib/systemd/system/munge.service; 启用; 默认启用)
状态: 活跃 (运行中) 从2024年6月3日14:48:15 CEST开始; 已运行20小时
文档: man:munged(8)
启动命令: /usr/sbin/munged $OPTIONS (code=exited, 状态=0/SUCCESS)
主PID: 289 (munged)
进程数: 4 (上限: 9320)
内存: 1.8M
控制组: /system.slice/munge.service
└─289 /usr/sbin/munged
6月03日 14:48:15 <Your HOSTNAME> systemd[1]: 正在启动 MUNGE 认证服务...
6月03日 14:48:15 <Your HOSTNAME> systemd[1]: MUNGE 认证服务已启动。
# 6/ 运行演示脚本
运行 `sinfo` 检查节点是否处于活动状态。
➜ ~ sinfo
分区 可用性 时间限制 节点 状态 节点列表
local* 启动 无限的 1 空闲 <Your HOSTNAME>
创建一个名为`slurm_test.sh`的示例脚本:
该脚本用于测试Slurm工作状态
!/bin/bash
sleep 5
echo "Slurm working" > slurm_test_output.txt
将脚本设置为可执行,并将其提交给SLURM:
运行以下命令来给脚本添加可执行权限并提交作业到Slurm调度系统:
chmod +x slurm_test.sh
sbatch slurm_test.sh
![](https://imgapi.imooc.com/673a9756092fbe3313390114.jpg)
左边已启动了工作,右边在运行
**你看结果了!做得很好!💡**
![](https://imgapi.imooc.com/673a975709944f0b04090052.jpg)
#7 搞定 SLURM 服务
停止SLURM服务:
sudo service slurmctld stop # 停止 slurmctld 服务
sudo service slurmd stop # 停止 slurmd 服务
重启服务:SLURM
sudo ,service slurmctld 重启一下
sudo ,service slurmd 重启一下
如果服务停了,可以用以下方式启动它们。
运行命令来启动slurmctld服务:``sudo service slurmctld start``,然后启动slurmd服务:``sudo service slurmd start``
# 总结
**恭喜你成功在当地设置了SLURM**!使用SLURM,你可以高效管理并调度你的Linux系统上的任务,充分利用你的计算资源,让它们发挥最大效能。如果你觉得这个指南有用,不妨和你的朋友们分享,并继续关注更多优化Linux环境的教程。
如果你觉得这篇文章有用,并想表示支持,可以考虑:
* 如果这个故事让你产生了共鸣,请为它点赞。
* 关注我在 Medium 上的文章,以便了解未来的内容和发现。
* 更多我的最新文章和见解,请访问 [https://medium.com/@louis_10840](https://medium.com/@louis_10840)。
你的鼓励和支持对我来说非常重要,也鼓励我继续分享有用的信息。谢谢,
共同学习,写下你的评论
评论加载中...
作者其他优质文章