【问题标题】:how to debug: if mpi can't run across machine如何调试:如果 mpi 不能跨机器运行
【发布时间】:2019-06-06 02:19:17
【问题描述】:

我有大约 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 在命令行或您的环境中。我们 为问题道歉。

【问题讨论】:

  • 你试过mpirun --mca routed direct ...吗?
  • 它不起作用。但它帮助我找到解决方案。我用谷歌搜索了这个命令,我得到了类似问题的答案,它的解决方案是将 openmpi 升级到 3.1.2。问题解决了。我仍然不知道如何调试这种问题。所以,谢谢,至少我现在不必拘泥于工作。

标签: mpi openmpi


【解决方案1】:

如果你在 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,它可以工作了。

【讨论】:

    猜你喜欢
    • 2012-11-03
    • 2016-01-09
    • 2015-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 2016-09-20
    • 2014-09-03
    相关资源
    最近更新 更多