python - MPI (mpi4py) - 打印 Hello, World 仅限于一个节点
问题描述
我已经安装了 mpi4py 并试图编写我自己的 python 代码来跨节点运行。MPI for python 包的演示文件夹有一个我执行的 hello world 脚本,它运行成功,输出如下:
我有 2xraspberrypi(四核),输出正确!
Command: mpiexec --hostfile machinefile -n 8 python ~/mpi4py/mpi4py-3.0.3/demo/helloworld.py
Output:
Hello, World! I am process 0 of 8 on node001.
Hello, World! I am process 1 of 8 on node001.
Hello, World! I am process 2 of 8 on node001.
Hello, World! I am process 3 of 8 on node001.
Hello, World! I am process 6 of 8 on node002.
Hello, World! I am process 7 of 8 on node002.
Hello, World! I am process 4 of 8 on node002.
Hello, World! I am process 5 of 8 on node002.
我试图创建一个 python 脚本并从演示文件夹中复制粘贴 python 脚本并运行以下命令:
Command: mpiexec --hostfile machinefile -n 8 python ~/Desktop/sct/sct.py
但我的输出仅限于四张照片:
Hello, World! I am process 2 of 8 on node001.
Hello, World! I am process 3 of 8 on node001.
Hello, World! I am process 0 of 8 on node001.
Hello, World! I am process 1 of 8 on node001.
这是粘贴的完全相同的代码副本。我不明白出了什么问题。它应该像从演示文件夹中一样打印出 8 次,但在这里它只打印出 4 次。
如果你们都需要 python 脚本中的代码:
#!/usr/bin/env python
"""
Parallel Hello World
"""
from mpi4py import MPI
import sys
size = MPI.COMM_WORLD.Get_size()
rank = MPI.COMM_WORLD.Get_rank()
name = MPI.Get_processor_name()
sys.stdout.write(
"Hello, World! I am process %d of %d on %s.\n"
% (rank, size, name))
请帮忙!
解决方案
傻我..我没有将脚本从我的主节点复制到我的工作节点。该脚本是从主节点端执行的。
推荐阅读
- tensorflow - 张量流估计器保存模型
- html - 试图制作一个 svg-image 来显示。无法找出为什么它不
- sass - 父级前置 SCSS
- python-3.x - 在地图中添加修复参数 - Python
- node.js - 为 twilio flex 插件安装软件包时出现 NPM 错误
- cron - Applescript 在脚本执行后关闭终端
- summernote - 如何调整 Summernote 的宽度?
- ios - 尝试在 spotify ios SDK 上获得身份验证
- css - 使 Bootstrap 导航栏在两侧都有空间
- mysql - 如果数据库密码被编码如何在spring mvc中比较旧密码和新密码