Различия между 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 принимает массив элементов и распределяет элементы в порядке ранга процесса.

the illustration,