next up previous contents
Next: Сбор Up: Операции, которые пересылают данные Previous: Операции, которые пересылают данные   Contents

Широковещательная передача

------------------------------------------------------------------ MPI_BCAST(buffer, count, datatype, root, comm) ------------------------------------------------------------------

INOUT buffer Стартовый адрес буфера (по выбору)        
IN count Количество элементов в буфере (целое)        
IN datatype Тип данных буфера (указатель)        
IN root Ранг широковещательного корня (целое)        
IN comm Коммуникатор (указатель)        

void MPI::Comm::Bcast(void* buffer, int count, const MPI::Datatype& datatype, int root) const = 0

Опция in-place - в данном случае бессмысленна.

Если comm - интеркоммуникатор, то вызов затрагивает все процессы в интеркоммуникаторе, но с одной группой (группа A), определяющей корневой процесс. Все процессы в другой группе (группа B) получат одинаковые значения в аргументе root, который является номером корня в группе A. Корню будет передано значение MPI_ROOT в root. Все другие процессы из группы A получат значение MPI_PROC_NULL в root. Данные широковещательно передаются от корня всем процессам из группы B. Аргументы буферов приема для процессов из группы B должны быть совместимы с аргументами буфера передачи корня.



Alex Otwagin 2002-12-10