Slurm≥v20版本仿真模式下单机集群无法并行运行多作业问题求助
核心故障原因
- 多slurmd仿真模式下未为每个虚拟节点启动独立的slurmd进程,仅启动1个进程,导致仅有1个虚拟节点实际可用,其余显示idle但无法调度
- Slurm 20.02+版本对多slurmd的运行资源要求更严格,每个虚拟节点需要配置独立端口、独立存储目录,旧版本的宽松配置不再适用
- 配置文件存在冲突:slurm.conf中同时存在多套Node配置,且错误引入了FrontEnd相关配置,该配置适用于集群登录节点,单节点场景无需使用
- 编译参数混用:错误同时开启
--enable-multiple-slurmd和--enable-front-end,两个参数适用场景完全不同,导致启动报错
解决方案
方案一:保留多虚拟节点仿真模式(适配Slurm≥20版本)
如果需要仿真多节点集群环境,可按以下步骤调整:
- 修正编译参数,移除不必要的前端模式配置
cd ~/slurm git checkout slurm-21-08-4-1 make clean ./configure --enable-debug --enable-multiple-slurmd make -j4 && sudo make install
- 修正
slurm.conf节点配置,替换原有Node、Partition相关内容
# 4个虚拟节点分别配置独立端口、独立存储目录 NodeName=home1 NodeHostName=home NodeAddr=127.0.0.1 CPUs=1 ThreadsPerCore=1 Port=17001 SlurmdSpoolDir=/var/spool/slurmd/home1 NodeName=home2 NodeHostName=home NodeAddr=127.0.0.1 CPUs=1 ThreadsPerCore=1 Port=17002 SlurmdSpoolDir=/var/spool/slurmd/home2 NodeName=home3 NodeHostName=home NodeAddr=127.0.0.1 CPUs=1 ThreadsPerCore=1 Port=17003 SlurmdSpoolDir=/var/spool/slurmd/home3 NodeName=home4 NodeHostName=home NodeAddr=127.0.0.1 CPUs=1 ThreadsPerCore=1 Port=17004 SlurmdSpoolDir=/var/spool/slurmd/home4 PartitionName=debug Nodes=ALL Default=YES MaxTime=INFINITE State=UP Shared=FORCE:1
- 初始化每个虚拟节点的存储目录
sudo mkdir -p /var/spool/slurmd/home{1,2,3,4} sudo chown alper:alper /var/spool/slurmd -R
- 为每个虚拟节点启动独立slurmd进程(核心修复点)
sudo /usr/local/sbin/slurmd -N home1 sudo /usr/local/sbin/slurmd -N home2 sudo /usr/local/sbin/slurmd -N home3 sudo /usr/local/sbin/slurmd -N home4 sudo /usr/local/sbin/slurmdbd & sudo /usr/local/sbin/slurmctld -c
调整后提交4个单节点作业即可同时运行。
方案二:单节点多CPU模式(无需多slurmd,推荐)
如果仅需要单服务器实现多作业并行,不需要仿真多节点,可使用更简单的单进程配置:
- 调整编译参数,移除多slurmd和前端模式配置
cd ~/slurm git checkout slurm-21-08-4-1 make clean ./configure --enable-debug make -j4 && sudo make install
- 替换
slurm.conf中Node、Partition相关配置,删除所有FrontEnd相关内容
# 填写你主机的实际内存,单位为MB,比如8G内存填8192 NodeName=home NodeAddr=127.0.0.1 CPUs=4 RealMemory=8192 State=UNKNOWN PartitionName=debug Nodes=home Default=YES MaxTime=INFINITE State=UP Shared=YES
- 启动服务,仅需要单slurmd进程
sudo /usr/local/sbin/slurmd sudo /usr/local/sbin/slurmdbd & sudo /usr/local/sbin/slurmctld -c
调整后单核心作业可并行运行4个,多核心作业会自动按CPU配额调度。
内容的提问来源于stack exchange,提问作者alper
相关产品推荐
相关产品推荐

