【新教程】Ubuntu 24.04 单节点安装slurm

server/2025/1/18 2:59:30/

背景

网上教程老旧,不适用。

详细步骤

1、安装slurm

sudo apt install slurm-wlm slurm-wlm-doc -y

检查是否安装成功:

slurmd --version

如果得到slurm-wlm 23.11.4,表明安装成功。
2、配置slurm
使用命令:

sudo vi /etc/slurm/slurm.conf

在其中输入以下内容:

ClusterName=cool  [自定义集群名称]
ControlMachine=master
#ControlAddr=
#BackupController=
#BackupAddr=
#
MailProg=/usr/bin/s-nail
SlurmUser=slurm
#SlurmdUser=slurm
SlurmctldPort=6817SlurmdPort=6818
AuthType=auth/munge
#JobCredentialPrivateKey=
#JobCredentialPublicCertificate=
StateSaveLocation=/var/spool/slurmctld
SlurmdSpoolDir=/var/spool/slurmd
SwitchType=switch/none
MpiDefault=none
SlurmctldPidFile=/var/run/slurmctld.pid
SlurmdPidFile=/var/run/slurmd.pid
ProctrackType=proctrack/pgid
#PluginDir=
#FirstJobId=
ReturnToService=0
#MaxJobCount=
#PlugStackConfig=
#PropagatePrioProcess=
#PropagateResourceLimits=
#PropagateResourceLimitsExcept=
#Prolog=
#Epilog=
#SrunProlog=
#SrunEpilog=
#TaskProlog=
#TaskEpilog=
#TaskPlugin=
#TrackWCKey=no
#TreeWidth=50
#TmpFS=
#UsePAM=
#
# TIMERS
SlurmctldTimeout=300
SlurmdTimeout=300
InactiveLimit=0
MinJobAge=300
KillWait=30
Waittime=0
#
# SCHEDULING
SchedulerType=sched/backfill
#SchedulerAuth=
#SelectType=select/linear
#PriorityType=priority/multifactor
#PriorityDecayHalfLife=14-0
#PriorityUsageResetPeriod=14-0
#PriorityWeightFairshare=100000
#PriorityWeightAge=1000
#PriorityWeightPartition=10000
#PriorityWeightJobSize=1000
#PriorityMaxAge=1-0
#
# LOGGINGSlurmctldDebug=info
SlurmctldLogFile=/var/log/slurm/slurmctld.log
SlurmdDebug=info
SlurmdLogFile=/var/log/slurm/slurmd.log
JobCompType=jobcomp/none
#JobCompLoc=
#
# ACCOUNTING
#JobAcctGatherType=jobacct_gather/linux
#JobAcctGatherFrequency=30
#
#AccountingStorageType=accounting_storage/slurmdbd
#AccountingStorageHost=
#AccountingStorageLoc=
#AccountingStoragePass=
#AccountingStorageUser=
#
# COMPUTE NODESPartitionName=CPU Nodes=master Default=NO MaxTime=INFINITE State=UP
#NodeName=master State=UNKNOWN
NodeName=master Sockets=1 CoresPerSocket=4 ThreadsPerCore=1 State=UNKNOWN

其中,要修改以下参数,请勿和上述配置完全一样;
ControlMachine=你的主机名,查看方法hostname
PartitionName=队列名称,可以自己起,比如改为CPU
Nodes=你的主机名,查看方法hostname
NodeName=你的主机名,查看方法hostname
Sockets=你服务器cpu的个数,查看方法cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
CoresPerSocket=每个cpu的核数,查看方法cat /proc/cpuinfo| grep "cpu cores"| uniq
ThreadsPerCore填写方法:
运行下面的脚本;

#!/bin/bash
cpunum=`cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l`
echo "CPU 个数: $cpunum";
cpuhx=`cat /proc/cpuinfo | grep "cores" | uniq | awk -F":" '{print $2}'`
echo "CPU 核心数:$cpuhx" ; 
cpuxc=`cat /proc/cpuinfo | grep "processor" | wc -l`
echo "CPU 线程数:$cpuxc" ;if [[ `expr $cpunum\*$[cpuhx*2] ` -eq $cpuxc ]];
thenecho "开启了超线程"
elseecho "未开启超线程"
fi

如果开启了超线程填2,否则填1.
3、创建文件夹。使用以下命令,创建所需的文件夹:

sudo mkdir -p /var/spool/slurmd
sudo mkdir -p /var/spool/slurmctld
sudo chown -R slurm:slurm /var/spool/slurmd
sudo chown -R slurm:slurm /var/spool/slurmctld
sudo chmod -R 755  /var/spool/slurmd
sudo chmod -R 755 /var/spool/slurmctld

4、启动slurm

sudo systemctl enable slurmctld --now
sudo systemctl enable slurmd --now

5、确保节点状态初始化

sudo scontrol update NodeName=ubuntuseerver State=RESUME

6、测试是否成功

srun --partition=CPU --time=00:01:00 --ntasks=1 hostname

如果输出主机名则证明成功。

报错处理

1、如果在启动服务的时候报错,重复执行以下内容;

sudo chmod -R 755  /var/spool/slurmd
sudo chmod -R 755 /var/spool/slurmctld

然后重新启动服务

sudo systemctl restart slurmd
sudo systemctl restart slurmctld

其他报错,欢迎联系作者询问。

备注

不同Ubuntu可能有所不同,本文适用于Ubuntu 24.04

参考资料

https://wxyhgk.com/article/ubuntu-slurm


http://www.ppmy.cn/server/159239.html

相关文章

如何通过 Nginx 实现 CouchDB 集群的负载均衡并监控请求分发

在现代分布式系统中,负载均衡是确保高可用性和性能的关键组件。CouchDB 是一个强大的分布式数据库,而 Nginx 是一个高性能的反向代理和负载均衡器。本文将详细介绍如何通过 Nginx 实现 CouchDB 集群的负载均衡,并监控请求被分发到哪一台 Couc…

踏上 C++ 编程之旅:开篇之作

踏上 C 编程之旅:开篇之作 在计算机编程的广袤天地中,C 宛如一座巍峨的高峰,吸引着无数开发者攀登探索。今天,就让我们一同开启这段充满挑战与惊喜的 C 编程之旅,在代码的世界里开辟属于自己的道路。 一、为什么选择…

闲谭SpringBoot--ShardingSphere分布式事务探究

文章目录 0. 背景1. 未分库分表时2. 仅分表时3. 分库分表时3.1 不涉及分库表3.2 涉及分库表,且分库表处于一个库3.3 涉及分库表,且分库表处于多个库3.4 涉及分库表,且运行中某库停机 4. 小结 0. 背景 接上篇文章《闲谭SpringBoot–ShardingS…

算法竞赛(蓝桥杯)贪心算法1——数塔问题

题目描述 有如下所示的数塔,要求从底层走到顶层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少? 输入 输入数据首先包括一个整数整数 N (1≤N≤100),表示数塔的高度,接下来用 N 行数字表示…

C++实现设计模式---代理模式 (Proxy)

代理模式 (Proxy) 代理模式 是一种结构型设计模式,它为其他对象提供一个代理以控制对该对象的访问。代理模式常用于延迟加载、访问控制、智能引用等场景。 意图 提供对某对象的控制。控制对目标对象的访问,通常用于在不改变目标对象的情况下&#xff0…

【Flink系列】1.概述

1. Flink概述 1.1 Flink是什么 1.1.1 Flink是什么 Flink的官网主页地址:https://flink.apache.org/ 1.1.2 有界流和无界流 1.1.2 有状态流处理 1.1.3 Flink 的发展历史 1.2 Flink特点 1.3 Flink vs SparkStreaming 1.4 Flink 的应用场景 1.5 Flink 分层 API

深度学习camp-第J7周:对于ResNeXt-50算法的思考

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 📌你需要解决的疑问:这个代码是否有错?对错与否都请给出你的思考 📌打卡要求:请查找相关资料、逐步…

【认识油管头部频道】ep5 “5-Minute Crafts”——DIY 和生活技巧

5-Minute Crafts 是一个非常受欢迎的 DIY 和生活技巧频道,它的火爆有多方面的原因: 1. 简单实用的内容 视频主要以解决日常生活中遇到的小问题为主,提供简单易学的技巧,吸引了想快速获取实用知识的观众。 2. 短视频形式 每个视…