В стандарте MPI не указывается, как следует собирать stdout из разных узлов, а fflush
не помогает.
Если вам нужно печатать большие выходы по порядку, возможно, лучшим решением не является собрать их все и распечатать сразу, потому что это приведет к генерации трафика по сети. Лучшее решение - создать нечто похожее на виртуальное кольцо, где каждый процесс ждет токен из предыдущего процесса, печатает и отправляет токен на следующий. Конечно, первый процесс не должен ждать, он печатает и отправляет на следующий.
В любом случае в случае действительно большого выхода, где, вероятно, нет смысла печатать выходы на видео, вы должны используйте MPI-IO, как предложил Джонатан Дурси.