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