Отправьте данные всем рабочим или получите данные, отправленные всем рабочим
shared_data = labBroadcast(srcWkrIdx,data)
shared_data = labBroadcast(srcWkrIdx)
|
|
| Данные широковещательно передаются. Этот аргумент требуется только для рабочего, который является широковещательным. Отсутствие этого аргумента указывает, что рабочий получает. |
| Широковещательные данные, когда это получено на всех других рабочих. |
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