2017-06-11 32 views
0

試圖找出在開放MPI中全部減少和全部減少之間的差異。根據我的理解,All-to-One Reduction從所有進程中取出一塊m(整數,數組等等),並將所有塊與運算符(最小值,最大值,總和等)組合在一起,並將其存儲在選定的過程。從這個我假設全通全減是相同的,但產品存儲在所有進程而不是一個。從this文件看來,All-Reduce基本上和All-to-All還原一樣,這是對的還是我錯了?MPI中全部減少和全部減少差異

回答

0

全減少MPI_Allreduce)是組合減少廣播MPI_ReduceMPI_Bcast)。他們可能稱之爲MPI_Reduce_Bcast。重要的是要注意,MPI的減少並不會減少全球的影響。因此,如果在5個進程中每個有10個數字,則在MPI_Reduce之後,一個進程有10個數字。在MPI_Allreduce之後,所有5個過程具有相同的10個數字。

相反,所有到所有還原執行減少散射,因此它被稱爲MPI_Reduce_scatter[_block]。因此,如果您在5個流程中各有10個數字,則在MPI_Reduce_scatter_block之後,這5個流程各有2個數字。請注意,MPI本身並不使用術語全部縮小,可能是由於誤導性的模糊性。