如何在执行time.sleep()之前让mpi4py进程完成打印?

时间:2017-04-03 23:35:49

标签: python mpi4py ms-mpi

当我使用mpiexec -n 5 python mpiTest.py运行下面的代码时,我希望每个进程立即打印其消息,然后睡眠指定的时间。相反,它就像我在print命令之后放置sleep命令一样执行。为什么会发生这种情况?如何让它按预期运行?

MPI.COMM_WORLD.Barrier()print命令之间添加sleep无效。

我在win10上使用MS-MPI。

from mpi4py import MPI
import random
import time

def delayed():
    random.seed()
    sek = random.randint( 1, 5 )
    print( "Delaying for ", sek, " seconds." )
    time.sleep( sek )
    return

delayed()

1 个答案:

答案 0 :(得分:2)

sys.stdout.flush()电话之后添加print就可以了,非常感谢! =)