Передайте распределенный массив или gpuArray к локальной рабочей области
X = gather(
может работать со следующими данными массива:A
)
На gpuArray: Передает элементы A
от графического процессора до локальной рабочей области и присваивает их X
.
На распределенном массиве, вне spmd
оператор: Собирается элементы A
от нескольких рабочих к локальной рабочей области и присваивает их X
.
На codistributed массиве, в spmd
оператор или связывающееся задание: Собирается элементы A
и реплицирует их в X
на каждом рабочем.
Можно вызвать gather
на других типах данных, таких как длинные массивы (См. gather (tall)
). Если тип данных не поддерживает сбор, то gather
не оказывает влияния.
Сбор массивов графического процессора или распределенных массивов может быть дорогостоящим и является обычно не необходимым, если вы не должны использовать свой результат с функциями, которые не поддерживают эти типы массивов. Для получения дополнительной информации о функциональной поддержке смотрите функции MATLAB Запуска на графическом процессоре или функции MATLAB Запуска с Распределенными Массивами.
X = gather(gpuArray(X))
, X = gather(distributed(X))
, или X = gather(codistributed(X))
возвратите исходный массив X
.
[X1,X2,...,Xn] = gather(A1,A2,...,,Xn)
собирает несколько массивов A1,A2,...,,An
в соответствующие выходные параметры X1,X2,...,Xn
. Количество входных параметров и выходных аргументов должно соответствовать.
X = gather(C,lab)
преобразует codistributed массив C
к различному массиву X
, таким образом, что все элементы содержатся на рабочем lab
, и X
пустое 0 на 0 дважды на всех других рабочих.
[X1,X2,...,Xn] = gather(C1,C2,...,Cn,lab)
собирает codistributed массивы C1,C2,...,Cn
в соответствующие выходные параметры X1,X2,...,Xn
, со всеми элементами на рабочем lab
. Количество входных параметров и выходных аргументов должно соответствовать.
Обратите внимание на то, что gather
собирает codistributed или распределенный массив в рабочих областях всех рабочих, на которых это выполняется, или на клиенте MATLAB, соответственно, но не обоих. Если вы используете gather
в spmd
оператор, собранный массив доступен на клиенте через его соответствие Composite
объект; смотрите доступ к Переменным Рабочего с Составными объектами. Если при запуске gather
в связывающемся задании можно возвратить собранный массив в клиент как выходной аргумент от задачи.
Как gather
функция требует связи между всеми рабочими, вы не можете собрать данные от всех рабочих на одного рабочего путем размещения функции в условном операторе, таких как if labindex == 1
.
arrayfun
| bsxfun
| codistributed
| distributed
| gpuArray
| pagefun