Проверяйте, задан ли Составной объект на рабочих
h = exist(C,labidx)
h = exist(C)
h = exist(C,labidx) возвращает true, если запись в Составном объекте C имеет заданное значение на рабочем с labindex labidx, false в противном случае. В общем случае, где labidx является массивом, вывод h является массивом, одного размера как labidx, и h(i) указывает, имеет ли Составная запись labidx(i) заданное значение.
h = exist(C) эквивалентно h = exist(C, 1:length(C)).
Если exist(C,labidx) возвращает true, C(labidx) не выдает ошибку, при условии, что значения C на тех рабочих являются сериализуемыми. Функция выдает ошибку, если какой-либо labidx недопустим.
Задайте переменную на случайном числе рабочих. Начните работу, какие рабочие Составные записи заданы и получают все те значения:
spmd if rand() > 0.5 c = labindex; end end ind = exist(c); cvals = c(ind);