If I have a large distributed array A, and I do some in-place operation to it inside an SPMD block, here's what I would write:
spmd
A_codistr = getCodistributor(A);
local_A = getLocalPart(A);
local_A = some_inplace_operation(local_A);
A = codistributed.build(local_A, A_codistr);
end
However, is it true that this would create a copy of local_A on each machine, because the reference to A still exists when you call getLocalPart on it? Is the MATLAB PCT smart enough to recognize that I am simply doing in-place operations on the local parts of A?
If not, what would be a good way to ensure that normal in-place operation in MATLAB can be done on local parts of distributed arrays?