我有一个前端和两个计算节点
所有都有相同的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)
感谢您宝贵的时间和帮助。
答案 0 :(得分:0)
在配置文件中,尝试删除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
在这些计算机上返回的内容。
还请确保这些机器之间没有防火墙在任何方向上阻塞Slurm端口,并且SELinux被禁用或允许。确保slurmd
和munge
都运行。
答案 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