python - 带有 mpi4py 的 Openmpi 不能在多个节点上工作
问题描述
我有用 mpi4py 编写的并行 python 程序。我正在尝试使其分发。我设置了虚拟机,安装了 openmpi,openssh 服务器,交换了密钥等等。在本地机器上我有主机文件:
127.0.0.1 slots=4
192.168.1.104 slots=2
我尝试运行程序:
mpirun -np 2 --hostfile hostfile python2 algen.py 0.85 0.02 20 70
但我收到以下错误:
[Kreutz:13090] tcp_peer_recv_connect_ack:无效的标头类型:0
ORTE 无法可靠地启动一个或多个守护程序。这通常是由以下原因引起的:
在一个或多个节点上找不到所需的库和/或二进制文件。请检查您的 PATH 和 LD_LIBRARY_PATH 设置,或使用 --enable-orterun-prefix-by-default 配置 OMPI
缺乏在一个或多个指定节点上执行的权限。请核实您的分配和权限。
无法将启动文件写入 /tmp (--tmpdir/orte_tmpdir_base)。请与您的系统管理员联系以确定要使用的正确位置。
当需要静态时(例如,在 Cray 上),使用动态库编译 orted。请检查您的配置 cmd 行并考虑为您的系统类型使用 contrib/platform 定义之一。
由于缺乏通用网络接口和/或在它们之间找不到路由,无法创建与 mpirun 的连接。请检查网络连接(包括防火墙和网络路由要求)。
我不知道现在该怎么办。你有什么想法我可以尝试吗?
解决方案
推荐阅读
- webpack - 安装 firebase-admin "npm run webpack:server" 后 webpack 构建错误 - 缺少依赖项
- bots - 俄罗斯轮盘赌命令
- java - 在 2D 对象数组中测试 null
- javascript - 加入两个有序数组,随机混合项目,但保持原始顺序
- r-markdown - 使用考试文档类在 R-markdown 中运行代码块
- python - 带有 Google Python API 客户端的 `scripts.run` 的 403
- javascript - Laravel - Ajax 模态和删除按钮不起作用
- asp.net-mvc - MVC中模型对象和模型状态的区别
- python - 从连续数据帧值中获取最小值
- python - 如何在 Redis 上存储 var count.name(其中 name 是一个 arg)