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);