slurm:如何将前端与计算节点连接起来?
slurm: How to connect front-end with compute nodes?
我有一个前端和两个计算节点
都有相同的 slurm.conf 文件,结尾为(详情请参阅:https://gist.github.com/avatar-lavventura/46b56cd3a29120594773ae1c8bc4b72c):
NodeName=ebloc2 NodeHostName=ebloc NodeAddr=54.227.62.43 CPUs=1
PartitionName=debug Nodes=ebloc2 Default=YES MaxTime=INFINITE State=UP
NodeName=ebloc4 NodeHostName=ebloc NodeAddr=54.236.173.82 CPUs=1
PartitionName=debug Nodes=ebloc4 Default=YES MaxTime=INFINITE State=UP
slurmctld
:只检查第一个写入节点的信息,不检查第二个写入节点的信息。当我尝试发送作业时收到以下错误,它只处理第一个写入节点的 IP,当我 运行 sudo slurmd
在第一个节点上工作时。
错误:
slurmctld: debug2: slurm_connect failed: Connection refused
slurmctld: debug2: Error connecting slurm stream socket at 54.227.62.43:6821: Connection refused
slurmctld: debug2: slurm_connect failed: Connection refused
slurmctld: debug2: Error connecting slurm stream socket at 54.227.62.43:6821: Connection refused
问题:我在第一个订单中提到的计算节点收到作业,但我在第二个订单中提到的计算节点没有。我该如何解决它。
slurmctld 日志(https://gist.github.com/avatar-lavventura/4ec8c1b15e0ada4aa4bd0414e2b1ffb4)
感谢您的宝贵时间和帮助。
在配置文件中,尝试删除ControlAddr=127.0.0.1
;或替换为 ebloc
的 IP 地址。这个 127.0.0.1
地址基本上意味着 'myself' 并且 ControlAddr
被 slurmd
用来连接到控制器。
出于同样的原因也删除 NodeHostName=localhost NodeAddr=127.0.0.1
。
并确保 ebloc
、ebloc1
和 ebloc2
确实是那些机器上的 hostname -s
returns。
还要确保没有防火墙在这些机器之间的任何方向阻塞 Slurm 端口,并且 SELinux 被禁用或允许。确保 slurmd
运行,以及 munge
.
每个分区只能有一个 PartitionName
行。
删除第一个并输入:
PartitionName = debug Nodes=ebloc2,ebloc4 Default=YES MaxTime=INFINITE State=UP
或使用正则表达式:
PartitionName = debug Nodes=ebloc[2,4] Default=YES MaxTime=INFINITE State=UP
我有一个前端和两个计算节点
都有相同的 slurm.conf 文件,结尾为(详情请参阅:https://gist.github.com/avatar-lavventura/46b56cd3a29120594773ae1c8bc4b72c):
NodeName=ebloc2 NodeHostName=ebloc NodeAddr=54.227.62.43 CPUs=1
PartitionName=debug Nodes=ebloc2 Default=YES MaxTime=INFINITE State=UP
NodeName=ebloc4 NodeHostName=ebloc NodeAddr=54.236.173.82 CPUs=1
PartitionName=debug Nodes=ebloc4 Default=YES MaxTime=INFINITE State=UP
slurmctld
:只检查第一个写入节点的信息,不检查第二个写入节点的信息。当我尝试发送作业时收到以下错误,它只处理第一个写入节点的 IP,当我 运行 sudo slurmd
在第一个节点上工作时。
错误:
slurmctld: debug2: slurm_connect failed: Connection refused
slurmctld: debug2: Error connecting slurm stream socket at 54.227.62.43:6821: Connection refused
slurmctld: debug2: slurm_connect failed: Connection refused
slurmctld: debug2: Error connecting slurm stream socket at 54.227.62.43:6821: Connection refused
问题:我在第一个订单中提到的计算节点收到作业,但我在第二个订单中提到的计算节点没有。我该如何解决它。
slurmctld 日志(https://gist.github.com/avatar-lavventura/4ec8c1b15e0ada4aa4bd0414e2b1ffb4)
感谢您的宝贵时间和帮助。
在配置文件中,尝试删除ControlAddr=127.0.0.1
;或替换为 ebloc
的 IP 地址。这个 127.0.0.1
地址基本上意味着 'myself' 并且 ControlAddr
被 slurmd
用来连接到控制器。
出于同样的原因也删除 NodeHostName=localhost NodeAddr=127.0.0.1
。
并确保 ebloc
、ebloc1
和 ebloc2
确实是那些机器上的 hostname -s
returns。
还要确保没有防火墙在这些机器之间的任何方向阻塞 Slurm 端口,并且 SELinux 被禁用或允许。确保 slurmd
运行,以及 munge
.
每个分区只能有一个 PartitionName
行。
删除第一个并输入:
PartitionName = debug Nodes=ebloc2,ebloc4 Default=YES MaxTime=INFINITE State=UP
或使用正则表达式:
PartitionName = debug Nodes=ebloc[2,4] Default=YES MaxTime=INFINITE State=UP