0
mpiexec -n 5 python mpiTest.py
を使用して以下のコードを実行すると、すべてのプロセスがメッセージをすぐに表示してから、指定された時間スリープすることが期待されます。代わりに、私はsleep
コマンドの後にprint
コマンドを置くかのように実行します。なぜこれが起こり、どうやってそれを期待どおりに動作させることができますか?mpi4pyプロセスがtime.sleep()を実行する前に印刷を終了する方法を教えてください。
MPI.COMM_WORLD.Barrier()
をprint
とsleep
コマンドの間に追加することは役に立ちません。
私はwin10でMS-MPIを使用しています。
print
呼び出しは、トリックをしたおかげで、これまであまり後
sys.stdout.flush()
を追加
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