labBroadcast

Отправляйте данные всем работникам или получайте данные, отправляемые всем работникам

Синтаксис

shared_data = labBroadcast(srcWkrIdx,data)
shared_data = labBroadcast(srcWkrIdx)

Аргументы

srcWkrIdx

The labindex работника, отправляющего вещание.

data

Данные, которые транслируются. Этот аргумент требуется только для работника, осуществляющего широковещательную передачу. Отсутствие этого аргумента указывает, что рабочий процесс получает.

shared_data

Широковещательные данные, полученные от всех других работников.

Описание

shared_data = labBroadcast(srcWkrIdx,data) отправляет указанный data всем исполнительным работникам. Данные передаются от работника с   labindex == srcWkrIdx, и принимается всеми другими работниками.

shared_data = labBroadcast(srcWkrIdx) получает от каждого выполняющего работника указанное shared_data который был отправлен от работника, чья labindex является srcWkrIdx.

Если labindex не srcWkrIdx, тогда вы не включаете data аргумент. Это указывает, что функция состоит в том, чтобы принимать данные, а не транслировать их. Полученные данные, shared_data, идентично для всех работников.

Эта функция блокирует выполнение, пока не будет завершено участие работника в коллективной широковещательной операции. Потому что некоторые работники могут выполнить свой вызов в labBroadcast до того, как другие начали, используйте labBarrier если вам нужно гарантировать, что все работники находятся в одной точке в программе.

Примеры

В этом случае вещателем является рабочий, чья labindex является 1.

srcWkrIdx = 1;
if labindex == srcWkrIdx
  data = randn(10);
  shared_data = labBroadcast(srcWkrIdx,data);
else
  shared_data = labBroadcast(srcWkrIdx);
end

Расширенные возможности

См. также

| |

Представлено до R2006a