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