本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
尝试运行作业
srun
交互式作业失败并显示错误“srun: error: fwd_tree_thread: can't find address for <host>, check slurm.conf
”
-
为什么失败?
您运行了
srun
命令以提交作业,然后使用pcluster update-cluster
命令提高了队列大小,而没有在更新完成后重启 Slurm 进程守护程序。Slurm 以树状层次结构组织 Slurm 进程守护程序以优化通信。只有在进程守护程序启动时才会更新此层次结构。
假设您使用
srun
启动一个作业,然后运行pcluster update-cluster
命令提高队列的大小。新计算节点在更新过程中启动。然后,Slurm 将您的作业排队到其中一个新计算节点。在这种情况下,Slurm 进程守护程序和srun
都不会检测到新计算节点。srun
返回错误,因为它未检测到新节点。 -
如何解决?
在所有计算节点上重启 Slurm 进程守护程序,然后使用
srun
提交作业。您可以通过运行重启计算节点的scontrol reboot
命令来调度 Slurm 进程守护程序重启。有关更多信息,请参阅 Slurm 文档中的 scontrol reboot。您也可以通过请求重启相应的 systemd
服务来手动重启计算节点上的 Slurm 进程守护程序。
运行 squeue
命令时,作业卡在 CF
状态
这可能是动态节点启动的问题。有关更多信息,请参阅 在计算节点初始化过程中看到错误。
运行大型作业并看到“nfsd: too many open connections, consider increasing
the number of threads in /var/log/messages
”
对于联网的文件系统,当达到网络限制时,I/O 等待时间也会增加。这可能会导致软锁定,因为网络同时用于写入网络数据和 I/O 指标数据。
对于第 5 代实例,我们使用 ENA 驱动程序来公开数据包计数器。这些计数器计算网络达到实例带宽限制 AWS 时形成的数据包。您可以检查这些计数器以查看它们是否大于 0。如果是,则说明您已超出带宽限制。您可以通过运行 ethtool -S eth0 | grep exceeded
来查看这些计数器。
超出网络限制通常是由于支持过多的 NFS 连接所致。当达到或超过网络限制时,这是首先要检查的因素之一。
例如,以下输出显示已丢弃程序包:
$
ethtool -S eth0 | grep exceeded
bw_in_allowance_exceeded: 38750610 bw_out_allowance_exceeded: 1165693 pps_allowance_exceeded: 103 conntrack_allowance_exceeded: 0 linklocal_allowance_exceeded: 0
为避免收到此消息,请考虑将头节点实例类型更改为性能更高的实例类型。考虑将您的数据存储迁移至不导出为 NFS 共享的共享存储文件系统,例如 Amazon EFS 或 Amazon FSx。有关更多信息,请参阅 共享存储 AWS ParallelCluster Wiki 上的 “最佳实践
运行 MPI 作业
启用调试模式
要启用 OpenMPI 调试模式,请参阅 Open MPI 有哪些控件可以帮助调试
要启用 IntelMPI 调试模式,请参阅其他环境变量
在作业输出中看到 MPI_ERRORS_ARE_FATAL
和 OPAL ERROR
这些错误代码来自应用程序中的 MPI 层。要了解如何从应用程序获取 MPI 调试日志,请参阅启用调试模式。
导致此错误的一个可能原因是,您的应用程序已针对特定的 MPI 实现(例如 OpenMPI)进行编译,而您正在尝试对不同的 MPI 实现(例如 IntelMPI)运行该应用程序。确保针对相同的 MPI 实现编译和运行应用程序。
在禁用托管 DNS 的情况下使用 mpirun
对于在 SlurmSettings/Dn s/DisableManagedDns和 UseEc2Hostnames 设置为的情况下创建的集群true
,DNS 不会解析Slurm节点名称。 Slurm如果nodenames
未启用且 MPI 作业是在上下文中运行的,则可以引导 MPI 进程。Slurm我们建议按照 Slurm MPI 用户指南