[Homework] Problem about MPI_Barrier

在for loop中,無法使用mpi_barrier同步所有cpu(與下面連結有同樣的問題)
但仍不知為什麼會造成這種結果,請怎麼解決或是有什麼替代方案?

thx.

同學你好,

其實 stackoverflow 上面已經有解答了:

雖然你是在兩台電腦上面輸出文字,但是 MPI 會自動幫你整合起來回傳給你,所以才看得到所有process印出的內容。解答這裡就是描述這件事,因為你不能決定 MPI 要如何處理這件事,所以如果要確保輸出順序的話最好都先把內容傳給一個 process,全部由他輸出。

我們也有查詢到網路上有人提供的另外解:

另外,我猜測同學會遇到這個問題是因為想要透過 printf 把答案輸出出來。但是我們的作業是要求使用 MPI IO 的方式把答案寫入至一個檔案中。所以同學應該不需要處理這項問題才對。

Thanks