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

标签 python mpi4py ms-mpi

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

添加 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()

最佳答案

添加 sys.stdout.flush()print调用成功了,非常感谢! =)

关于python - 如何在执行 time.sleep() 之前让 mpi4py 进程完成打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43195996/

相关文章:

python - MPI4Py comm.Barrier() 没有阻塞 MSMPI?

python - 如何使用 Flask 提供 HTML 和 JSON 内容?

c++ - Microsft MPI MPI_Isend 中的死锁

c++ - 毫秒 mpi 错误 : unable to allocate launching block

python - mpi4py:动态数据处理

python - 进程在 MPIPoolExecutor 初始化之前生成。此外,我可以将 HPC 与 ProccesPoolExecutor 一起使用吗?

python - 如何让屏幕忽略某些图像的背景颜色?

python - 将列表(日期时间)的元素求和为一个值

php mcrypt 三元组的 python 等效项