slurm:如何连接前端和计算节点?

时间:2017-06-23 11:04:53

标签: slurm

我有一个前端和两个计算节点

所有都有相同的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 logs(https://gist.github.com/avatar-lavventura/4ec8c1b15e0ada4aa4bd0414e2b1ffb4

感谢您宝贵的时间和帮助。

2 个答案:

答案 0 :(得分:0)

在配置文件中,尝试删除ControlAddr=127.0.0.1;或替换为ebloc的IP地址。这个127.0.0.1地址基本上表示'myself',ControlAddr使用slurmd连接到控制器。

出于相同的原因,也删除NodeHostName=localhost NodeAddr=127.0.0.1

并确保eblocebloc1ebloc2确实是hostname -s在这些计算机上返回的内容。

还请确保这些机器之间没有防火墙在任何方向上阻塞Slurm端口,并且SELinux被禁用或允许。确保slurmdmunge都运行。

答案 1 :(得分:0)

每个分区只能有一个PartitionName行。 删除第一个并放入:

PartitionName = debug Nodes=ebloc2,ebloc4 Default=YES MaxTime=INFINITE State=UP

或使用regexp:

PartitionName = debug Nodes=ebloc[2,4] Default=YES MaxTime=INFINITE State=UP