gather
Transfer distributed array or gpuArray to local workspace
Syntax
Description
X = gather(
can operate on the following
array data:A
)
On a
gpuArray
: Transfers the elements ofA
from the GPU to the local workspace and assigns them toX
.On a distributed array, outside an
spmd
statement: Gathers together the elements ofA
from the multiple workers to the local workspace and assigns them toX
.On a codistributed array, inside an
spmd
statement or communicating job: Gathers together the elements ofA
and replicates them intoX
on every worker.
You can call gather
on other data types, such as tall arrays (See
gather (tall)
). If the data type does not support gathering, then
gather
has no effect.
Gathering GPU arrays or distributed arrays can be costly and is generally not necessary unless you need to use your result with functions that do not support these types of arrays. For more information on function support, see Run MATLAB Functions on a GPU or Run MATLAB Functions with Distributed Arrays.
X = gather(gpuArray(X))
, X =
gather(distributed(X))
, or X = gather(codistributed(X))
return the original array X
.
[X1,X2,...,Xn] = gather(A1,A2,...,,Xn)
gathers multiple arrays
A1,A2,...,,An
into the corresponding outputs
X1,X2,...,Xn
. The number of input arguments and output arguments must
match.
X = gather(C,destination)
converts a codistributed array
C
to a variant array X
, such that all of the
elements are contained on the worker specified by destination
, and
X
is a 0-by-0 empty double on all other workers.
[X1,X2,...,Xn] = gather(C1,C2,...,Cn,destination)
gathers
codistributed arrays C1,C2,...,Cn
into corresponding outputs
X1,X2,...,Xn
, with all elements on the worker specified by
destination
. The number of input arguments and output arguments must
match.
Examples
Input Arguments
Tips
Note that gather
assembles the codistributed or distributed array in
the workspaces of all the workers on which it executes, or on the MATLAB client, respectively, but not both. If you are using gather
within an spmd
statement, the gathered array is
accessible on the client via its corresponding Composite
object; see Access Worker Variables with Composites. If you
are running gather
in a communicating job, you can return the gathered
array to the client as an output argument from the task.
As the gather
function requires communication between all the workers,
you cannot gather data from all the workers onto a single worker by placing the function
inside a conditional statement such as if spmdIndex == 1
.
Version History
Introduced in R2006b
See Also
arrayfun
| codistributed
| distributed
| gpuArray
| pagefun