在单台 Rocky Linux 工作站上完全可以安装和使用 Slurm,即使没有多节点集群,也能非常方便地在远程登录时提交后台任务(如 sbatch 提交长时间运行的程序)。这种方式常用于:
- 一台工作站(含多个CPU核、较大内存、GPU等)
- 多人或自己远程SSH登录使用
- 希望通过 Slurm 管理任务队列、记录日志、避免程序中断
一、基本思路
你可以把这台工作站当作一个“单节点集群”(即 node=localhost)。
只需安装并配置以下服务:
- slurmctld(调度器)
- slurmd(计算节点守护进程)
- munged(认证服务)
二、安装步骤
- 安装必要软件包
1
2
| $ sudo dnf install -y epel-release
$ sudo dnf install -y slurm slurm-slurmctld slurm-slurmd munge
|
- 启用并配置 Munge
Munge 负责节点间认证,即使只有一台机器也需要。
1
2
3
4
5
| sudo /usr/sbin/create-munge-key
sudo chown -R munge:munge /etc/munge /var/lib/munge /var/log/munge
sudo chmod 0700 /etc/munge /var/lib/munge /var/log/munge
sudo systemctl enable --now munge
sudo systemctl status munge
|
- 配置 Slurm
主配置文件位于 /etc/slurm/slurm.conf。
你可以快速生成一个模板:
1
| sudo sh -c 'slurmctld -c > /etc/slurm/slurm.conf'
|
然后编辑:
1
| sudo vim /etc/slurm/slurm.conf
|
示例最简配置(单节点):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| # /etc/slurm/slurm.conf
ClusterName=local
ControlMachine=localhost
SlurmUser=slurm
StateSaveLocation=/var/spool/slurmctld
SlurmdSpoolDir=/var/spool/slurmd
AuthType=auth/munge
SlurmctldPort=6817
SlurmdPort=6818
SlurmdPidFile=/var/run/slurmd.pid
SlurmctldPidFile=/var/run/slurmctld.pid
ProctrackType=proctrack/linuxproc
ReturnToService=2
SlurmctldTimeout=300
SlurmdTimeout=300
# 确保多个用户能共享节点
SelectType=select/cons_tres
# 仅分配核,内存多任务共享
SelectTypeParameters=CR_Core
NodeName=localhost CPUs=96 State=UNKNOWN
PartitionName=seis Nodes=localhost Default=YES MaxTime=INFINITE State=UP
|
根据你的 CPU 数量调整 CPUs=96。
- 创建运行目录与用户
1
2
3
4
| sudo groupadd slurm
sudo useradd -r -m -g slurm slurm
sudo mkdir -p /var/spool/slurmctld /var/spool/slurmd /var/log/slurm
sudo chown -R slurm:slurm /var/spool/slurm* /var/log/slurm
|
- 启动服务
1
2
| sudo systemctl enable --now slurmctld slurmd
sudo systemctl status slurmctld slurmd
|
三、使用示例
提交任务:
myscript.sh 示例:
1
2
3
4
5
6
7
8
9
10
11
| #!/bin/bash
#SBATCH -J testjob
#SBATCH -o test.out
#SBATCH -e test.err
#SBATCH -n 1
#SBATCH -c 24
#SBATCH -t 02:00:00
echo "Running job on $(hostname)"
JFILE=run.jl
julia $JFILE
|
参考资料