0
當我使用mpiexec -n 5 python mpiTest.py
運行下面的代碼時,我希望每個進程立即打印它的消息,然後休眠指定的時間。相反,它會執行,就像我在sleep
命令後面輸入print
命令一樣。爲什麼會發生這種情況,我如何才能讓它按照預期行事?如何在執行time.sleep()之前讓mpi4py進程完成打印?
在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()
您可能需要刷新您的IO緩衝區。在'print'調用之後嘗試'sys.stdout.flush()'。 – eduffy