reygrep Da izbjegneš zajebanciju i istraživanje jesu li ti i kako MPI procesi povezani s glavnim procesom, možda bi ti bilo bolje na početku u glavnom procesu stvoriti neki daemon kojem će ostali slati u Queue poruke koje on onda printa. U tom slučaju ti je za printanje zaslužan samo jedan proces (a ne proizvoljan broj koje MPI stvara), pa će ti u najmanju ruku biti lakše debuggati.
Taj proces može doslovno biti sljedeća metoda:
from multiprocessing import Queue
def print_process(input_queue: Queue):
for command, message in input_queue.get():
if command == "stop":
return
elif command == "print":
print(message)
return
(šalješ mu tuple (naredba, poruka), pa ga možeš i ugasiti ako mu pošalješ stop
naredbu)
U svakom slučaju flush ti nije baš naredba nego više sugestija, moja pretpostavka je da za što god je zaslužen bi ti se ispisalo tek na kraju posla, a ne kad mu narediš, i da to lakše riješiš procesom zasluženim za printanje koji manje serucka oko “naredbi” i ima jasniji graf roditelja.