next up previous contents
Next: Пример использования MPI_BCAST Up: Коллективные взаимодействия процессов Previous: Барьерная синхронизация   Contents

Широковещательный обмен

Синтаксис функции широковещательной посылки данных MPI_BCAST приводится ниже.

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

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

int MPI_Bcast(void* buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm)

MPI_BCAST(BUFFER, COUNT, DATATYPE, ROOT, COMM, IERROR)
<type> BUFFER(*)
INTEGER COUNT, DATATYPE, ROOT, COMM, IERROR

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

Функция широковещательной передачи MPI_BCAST посылает сообщение из корневого процесса всем процессам группы, включая себя. Она вызывается всеми процессами группы с одинаковыми аргументами для comm и root. В момент возврата управления содержимое корневого буфера обмена будет уже скопировано во все процессы.

В аргументе datatype можно задавать производные типы данных. Сигнатура типа данных count, datatype любого процесса обязана совпадать с соответствующей сигнатурой в корневом процессе. Необходимо, чтобы количество посланных и полученных данных совпадало попарно для корневого и каждого другого процессов. Такое ограничение имеют и все остальные коллективные операции, выполняющие перемещение данных. Однако по-прежнему разрешается различие в картах типов данных между отправителями и получателями.



Subsections

Alex Otwagin 2002-12-10