codistributed.build
Create codistributed array from distributed data
Syntax
D = codistributed.build(L,codist)
D = codistributed.build(L,codist,'noCommunication')
Description
D = codistributed.build(L,codist)
forms a codistributed array
with getLocalPart(D) = L
. The codistributed array
D
is created as if you had combined all copies of the local
array L
. The distribution scheme is specified by
codist
. Global error checking ensures that the local parts
conform with the specified distribution scheme. For information on constructing
codistributor objects, see the reference pages for codistributor1d
and codistributor2dbc
.
D = codistributed.build(L,codist,'noCommunication')
builds a
codistributed array, without performing any interworker communications for error
checking.
codist
must be complete, which you can check by calling
codist.isComplete()
. The requirements on the size and
structure of the local part L
depend on the class of
codist
. For the 1-D and 2-D block-cyclic codistributors,
L
must have the same class and sparsity on all workers.
Furthermore, the local part L must represent the region described by the
globalIndices
method on codist
.
Examples
Create a codistributed array of size 1001-by-1001 such that column
ii
contains the value ii
.
spmd N = 1001; globalSize = [N,N]; % Distribute the matrix over the second dimension (columns), % and let the codistributor derive the partition from the % global size. codistr = codistributor1d(2, ... codistributor1d.unsetPartition,globalSize) % On 4 workers, codistr.Partition equals [251,250,250,250]. % Allocate storage for the local part. localSize = [N, codistr.Partition(spmdIndex)]; L = zeros(localSize); % Use globalIndices to map the indices of the columns % of the local part into the global column indices. globalInd = codistr.globalIndices(2); % On 4 workers, globalInd has the values: % 1:251 on worker 1 % 252:501 on worker 2 % 502:751 on worker 3 % 752:1001 on worker 4 % Initialize the columns of the local part to % the correct value. for localCol = 1:length(globalInd) globalCol = globalInd(localCol); L(:,localCol) = globalCol; end D = codistributed.build(L,codistr) end
Version History
Introduced in R2009b
See Also
codistributor1d
| codistributor2dbc
| gather
| globalIndices
| getLocalPart
| redistribute
| subsasgn
| subsref