2017-06-11 6 views
0

オープン・MPIのオール・オール・リダクションとオール・リダクションの違いを理解しようとしています。私の理解では、All-to-One Reductionはすべてのプロセスからm(整数、配列など)を取り出し、すべての要素を演算子(min、max、sumなど)と組み合わせて選択されたプロセス。これから、私はオール・オール・リダクションは同じだと仮定しますが、製品は1つではなくすべてのプロセスに格納されています。 this文書からAll-Reduceは基本的にAll-to-All Reductionと同じように思えますが、これは正しいのですか、それとも間違っていますか?MPIのオール・オール・オール・リダクションとオール・リダクションの違い

答えて

0

全減らすMPI_Allreduce)を合わせ還元放送MPI_ReduceMPI_Bcast)です。彼らはそれをMPI_Reduce_Bcastと呼んでいたかもしれません。 MPIの削減はグローバルな削減を行わないことに注意することが重要です。したがって、5つのプロセスにそれぞれ10個の数字がある場合は、MPI_Reduceの後に1つのプロセスに10個の数字があります。 MPI_Allreduceの後、5つのプロセスはすべて同じ10の番号を持ちます。対照的に

全対全還元は、したがって、それがMPI_Reduce_scatter[_block]呼ばれ、還元散乱を行います。したがって、5つのプロセスにそれぞれ10個の番号がある場合は、MPI_Reduce_scatter_blockの後に5つのプロセスにそれぞれ2つの番号が付けられます。 MPI自体が、オール・オール・オール・リダクションという用語を使用していないことに注意してください。おそらく、間違ったあいまいさが原因です。

関連する問題