mpi - 如何调试:如果 mpi 不能跨机器运行
问题描述
我有大约 20 台服务器,我使用 mpi 跨服务器分发任务,所有服务器都有相同版本的操作系统(ubuntu 17.10),并且所有软件包都安装了相同的脚本(当然,我仍然不能保证所有服务器是一样的)
问题是:
我的一些服务器不能一起运行。mpi 打印以下输出。我四处搜索,不知道如何调试这个问题。
有人说这是因为我的包版本不同,软件在不同的服务器上,但没有说如何查看哪个包。
任何建议都会非常有帮助。
- 检查可能的错误的命令。
- 在哪里可以找到相关日志
ORTE 无法可靠地启动一个或多个守护程序。这通常是由以下原因引起的:
在一个或多个节点上找不到所需的库和/或二进制文件。请检查您的 PATH 和 LD_LIBRARY_PATH 设置,或使用 --enable-orterun-prefix-by-default 配置 OMPI
缺乏在一个或多个指定节点上执行的权限。请核实您的分配和权限。
无法将启动文件写入 /tmp (--tmpdir/orte_tmpdir_base)。请与您的系统管理员核对以确定要使用的正确位置。
当需要静态时(例如,在 Cray 上),使用动态库编译排序。请检查您的配置 cmd 行并考虑为您的系统类型使用 contrib/platform 定义之一。
由于缺乏通用网络接口和/或在它们之间找不到路由,无法创建与 mpirun 的连接。请检查网络连接(包括防火墙和网络
路由要求)。
-------------------------------------------------- ------------------------ ORTE 不知道如何将消息路由到位于指定节点上的指定守护进程:
我的节点:roo-25 目标节点:192.168.0.38
这通常是应向开发人员报告的内部编程错误。同时,解决方法可能是在命令行或您的环境中设置 MCA 参数 routed=direct。我们为这个问题道歉。
解决方案
如果您在 kubernetes 集群中使用 mpi 算子,您可以使用 进行调试kubectl apply -f xxx.yaml --verbose=6
,那么您将获得有关此问题的更多详细信息。这是多机通信造成的,建议你使用 构建无密码的日志ssh-copy-id role@machineip
,role 表示将执行作业的用户,machineip 表示执行作业的目的地,对于 kubernetes 集群我使用 root 来执行此操作. 之后,我将 openmpi 版本从 4.0.0 升级到 4.1.2,它可以工作了。
推荐阅读
- ios - 呈现的 ViewController 中的子视图在旋转后位置错误
- sharding - 如何在不停机的情况下为 tarantool 数据库添加另一个分片到生产环境?
- bash - 如何捕获文件头,然后对原始文件进行进一步的文本处理?
- azure - Azure Powershell 未创建具有多个端口的 NSG 规则
- java - 单击按钮时出现意图错误 - 为什么?
- sql - 在一个包中使用多个过程和多个游标
- node.js - 如何将 Nuxt.js 部署到 Cpanel v80 - 有/无入口点
- angular - ng-select - 改变高度
- jquery - 打开引导模式时保留选择的复选框
- reactjs - 尝试将上传图像的 url 存储在 firestore 中时遇到错误