【问题标题】:MPI (mpi4py) - Printing Hello, World limited to only one nodeMPI (mpi4py) - 打印 Hello, World 仅限于一个节点
【发布时间】:2021-02-28 14:39:30
【问题描述】:

我已经安装了 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))

请帮忙!

【问题讨论】:

    标签: python parallel-processing mpi mpi4py


    【解决方案1】:

    我真傻……我没有将脚本从我的主节点复制到我的工作节点。该脚本是从主节点端执行的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-09
      • 2012-10-06
      • 2021-09-24
      • 2018-03-11
      • 2014-01-10
      • 1970-01-01
      • 2015-05-04
      • 1970-01-01
      相关资源
      最近更新 更多