Lorsque j'exécute le code ci-dessous en utilisant mpiexec -n 5 python mpiTest.py
, je m'attends à ce que chaque processus imprime son message immédiatement, puis dorme pendant la durée spécifiée. Au lieu de cela, il s'exécute comme si je mettais la commande print
APRES la commande sleep
. Pourquoi cela arrive-t-il et comment puis-je le faire se comporter comme prévu? L'ajout d'un MPI.COMM_WORLD.Barrier()
entre les commandes print
et sleep
ne aide PAS. J'utilise MS-MPI sur win10.Comment obtenir des processus mpi4py pour terminer l'impression avant d'exécuter time.sleep()?
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()
Vous avez probablement besoin de vider votre tampon E/S. Essayez 'sys.stdout.flush()' après l'appel 'print'. – eduffy