mpi4py模块:关于聚集的问题

时间:2017-05-31 15:37:52

标签: graph parallel-processing mpi mpi4py

我正努力使用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

感谢您提供的任何潜在帮助!

0 个答案:

没有答案