Отправьте данные всем рабочим или получите данные, отправленные всем рабочим
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