Различия между MPI Scatter и MPI Bcast
может кто-нибудь объяснить в чем разница между MPI_Scatter
и MPI_Bcast
? (Помимо того, что любой процесс может транслироваться с помощью MPI_Scatter
и только root может использовать MPI_Bcast
)
в каких случаях я должен использовать первый один над другим?
2 ответов
MPI_Bcast()
отправляет одну и ту же часть данных всем, в то время как MPI_Scatter()
отправляет каждому процессу часть входного массива. MPI_Bcast()
напротив MPI_Reduce()
и MPI_Scatter()
напротив MPI_Gather()
. Маленькая схема, как этот не требует пояснений.
и как MPI_Scatter()
и MPI_Bcast()
аргумент чтобы указать корневой процесс.
MPI_Bcast берет один элемент данных в корневом процессе (Красное поле) и копирует его во все другие процессы. MPI_Scatter принимает массив элементов и распределяет элементы в порядке ранга процесса.