当我使用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()
答案 0 :(得分:2)
在sys.stdout.flush()
电话之后添加print
就可以了,非常感谢! =)