为了账号安全,请及时绑定邮箱和手机立即绑定

掌握本地作业调度:Linux系统上如何使用SLURM

通过我们详尽的 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 的控制守护程序。
2/ 生成 slurm.conf 文件

生成 **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

4/ 开始服务

运行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)。

你的鼓励和支持对我来说非常重要,也鼓励我继续分享有用的信息。谢谢,
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消