TypechoJoeTheme

MetMan's Blog

网站页面

Ubuntu on WSL安装作业调度器Slurm

MetMan博 主神仙
2025-03-22
/
0 评论
/
13 阅读
/
421 个字
/
百度已收录
03/22
本文最后更新于 2025年03月22日,已超过 13天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

前言

Slurm是高性能计算机上使用最广泛的作业资源调度器,它能够管理多节点CPU计算资源,也支持管理GPU计算资源。

下面介绍单节点部署slurm的方法,通过slurm管理小型工作站计算资源。单节点安装相比集群安装简化很多步骤。

测试环境

  • 工作站:12核24线程 CPU,1块NVIDIA RTX 3060 GPU。
  • Ubuntu 24.04 LTS @WSL
  • slurm-wlm 23.11.4

安装

这里通过Ubuntu apt包管理器安装slurm,相比源代码安装简单方便。

  • 安装slurm及依赖munge
$ sudo apt install munge slurm-wlm
  • 查询节点信息,后续slurm配置需要
$ hostname 
$ slurmd -C
  • 配置slurm.conf文件

slurm提供了网页版生成配置信息的方法,只需要填入对应的参数,就能一键生成配置信息。

使用浏览器打开/usr/share/doc/slurmctld/slurm-wlm-configurator.easy.html(WSL中可以利用wslview调用Windows的浏览器打开网页或者拷贝这个文件到Windows中打开)。

将生成的配置信息拷贝到/etc/slurm/slurm.conf

$ sudo vi /etc/slurm/slurm.conf
  • 开启slurmctld和slurmd服务
$ sudo systemctl enable slurmctld 
$ sudo service slurmctld start 
$ sudo systemctl enable slurmd 
$ sudo service slurmd start
  • 启动munge服务
$ sudo /etc/init.d/munge start 
  • 检查Slurm服务状态
$ sinfo 
$ scontrol show node

测试

  • srun测试
srun -p exp -n 8 hostname
  • sbatch提交MPI作业测试
#!/bin/bash
#SBATCH -J test
#SBATCH -p exp
#SBATCH -n 4

sleep 30
mpirun ./mpi_hello
$ sbatch job.sh

GPU资源支持

工作站有一块NVIDIA RTX 3060的显卡,希望通过slurm进行计算资源管理。

首先修改前面介绍的slurm.conf配置文件,添加GresTypes=gpu以及Gres字段。

GresTypes=gpu
NodeName=node00 CPUs=24 RealMemory=31953 Gres=gpu:1 Sockets=1 CoresPerSocket=12 ThreadsPerCore=2 State=UNKNOWN

然后添加gres.conf配置文件

NodeName=node00 Name=gpu File=/dev/dxg

注意这里的File使用的是/dev/dxg,而不是常见的dev/nvidia0,这是因为WSL Ubuntu虚拟化通过/dev/dxg访问Windows的GPU驱动。

具体说明:https://learn.microsoft.com/en-us/windows/wsl/faq

GPU access in WSL happens through a /dev/dxg device, which routes GPU calls out to the Windows GPU. This setup is different than a traditional Linux set up.

GPU作业脚本:

#!/bin/bash
#SBATCH -p exp
#SBATCH -n 1
#SBATCH --gres=gpu:1

sleep 10
./matrixMul    # 来自CUDA Samples程序

提交作业,sbatch run.sh

程序运行LOG:

[Matrix Multiply Using CUDA] - Starting...
GPU Device 0: "Ampere" with compute capability 8.6

MatrixA(320,320), MatrixB(640,320)
Computing result using CUDA Kernel...
done
Performance= 904.44 GFlop/s, Time= 0.145 msec, Size= 131072000 Ops, WorkgroupSize= 1024 threads/block
Checking computed result for correctness: Result = PASS

NOTE: The CUDA Samples are not meant for performance measurements. Results may vary when GPU Boost is enabled.

问题排查

如果发现节点不能正常使用,可能配置文件有错误,比如由于配置错误导致节点状态为drain

PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
exp*         up   infinite      1  drain node00

问题排查时可以查看slurm log文件:

  • /var/log/slurm/slurmctld.log
  • /var/log/slurm/slurmd.log

或者查看服务状态systemctl status slurmctld

sinfo -R也能告知节点故障原因。

REASON               USER      TIMESTAMP           NODELIST
gres/gpu count repor slurm     2024-09-14T08:35:12 node00

参考资料

https://nablacfd.github.io/2019/01/27/Notes-of-installing-slurm-in-Ubuntu-WSL/

slurmwslubuntu
朗读
赞(0)
赞赏
感谢您的支持,我会继续努力哒!
版权属于:

MetMan's Blog

本文链接:

https://blog.metman.top/index.php/archives/187/(转载时请注明本文出处及文章链接)

评论 (0)

互动读者

标签云

最新回复

  1. tqymnonccc打酱油
    2024-09-27
  2. toibdpojay打酱油
    2024-09-22
  3. yvctxyevvw打酱油
    2024-09-22
  4. frezhwzwuq打酱油
    2024-09-22
登录
X
用户名
密码