Check whether Composite is defined on workers
h = exist(C,labidx)
h = exist(C)
h = exist(C,labidx) returns true if
the entry in Composite C has a defined value on
the worker with labindex labidx, false otherwise.
In the general case where labidx is an array,
the output h is an array of the same size as labidx,
and h(i) indicates whether the Composite entry labidx(i) has
a defined value.
h = exist(C) is equivalent to h
= exist(C, 1:length(C)).
If exist(C,labidx) returns true, C(labidx) does
not throw an error, provided that the values of C on
those workers are serializable. The function throws an error if any labidx is
invalid.
Define a variable on a random number of workers. Check on which workers the Composite entries are defined, and get all those values:
spmd if rand() > 0.5 c = labindex; end end ind = exist(c); cvals = c(ind);