我正努力使用mpi4py收集方法。我想继续在根节点上调用 gather ,直到程序结束,由 fin()控制,返回一个布尔值,而其他节点发送,通过收集,他们的数据到根节点。问题是,即使打印位于第一行代码中,代码也无法在屏幕上显示文本。
这是一个最小的工作代码:
from mpi4py import MPI
from random import random
from math import log2
comm = MPI.COMM_WORLD
data = ""
rank = comm.Get_rank()
if rank != 0:
while True:
data = "s"
datas = comm.gather(data, root = 0)
if rank == 0:
while True:
datas = comm.gather(data, root = 0)
print(datas, rank)
当然,这会永远运行,但仍会在屏幕上打印出数据。但是,这并不能打印任何内容:
from mpi4py import MPI
from random import random
from math import log2
comm = MPI.COMM_WORLD
data = ""
datas = []
rank = comm.Get_rank()
if rank != 0:
data = "s"
datas = comm.gather(data, root = 0)
if rank == 0:
while datas != []:
datas = comm.gather(data, root = 0)
print(datas, rank)
我相信这是关于以下代码的问题,它应该使用mpi4py计算一个主导的图集:
https://drive.google.com/open?id=0B6O6mNqn_4AVWVlOeHNHWUZ3TmM
感谢您提供的任何潜在帮助!