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

Python 如何让mpi4py进程在执行time.sleep()之前完成打印?,python,mpi4py,ms-mpi,Python,Mpi4py,Ms Mpi,当我使用mpiexec-n5 python mpiTest.py运行下面的代码时,我希望每个进程立即打印其消息,然后在指定的时间内休眠。相反,它的执行就像我将print命令放在sleep命令之后一样。为什么会发生这种情况?我如何才能让它按预期运行 在打印和睡眠命令之间添加MPI.COMM_WORLD.Barrier没有帮助 我在win10上使用MS-MPI from mpi4py import MPI import random import time def delayed(): r

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

在打印和睡眠命令之间添加MPI.COMM_WORLD.Barrier没有帮助

我在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()

在打印调用后添加sys.stdout.flush成功了,非常感谢=

在打印调用后添加sys.stdout.flush成功了,非常感谢=

您可能需要刷新IO缓冲区。在打印调用后尝试sys.stdout.flush。您可能需要刷新IO缓冲区。在打印调用后尝试sys.stdout.flush。