Composite

Создайте Составной объект

Синтаксис

C = Composite()
C = Composite(nlabs)

Описание

C = Composite() создает объект Composite на клиенте, используя рабочие места из параллельного пула. Фактическое количество работников, на которые ссылается этот составной объект, зависит от размера пула и всех существующих составных объектов. Как правило, составные объекты следует создавать вне любой spmd оператор.

C = Composite(nlabs) создает составной объект на наборе параллельных пулов, соответствующий заданному ограничению. nlabs должен быть вектором длины 1 или 2, содержащим целые числа или Inf. Если nlabs имеет длину 1, она задает точное количество работников для использования. Если nlabs имеет размер 2, он задает минимальное и максимальное количество работников для использования. Фактическое количество используемых работников - это максимальное количество работников, совместимых с размером параллельного пула и другими существующими объектами Composite. Ошибка выдается, если ограничения на количество работников не могут быть выполнены.

Составной объект имеет по одной записи для каждой лаборатории; первоначально каждая запись не содержит данных. Используйте индексацию или spmd блок для определения значений для записей.

Примеры

Все следующие примеры используют локальный параллельный пул из четырех работников, открытый оператором:

p = parpool('local',4);

В этом примере показано, как создать составной объект без определенных элементов, а затем назначить значения с помощью for-цикл в клиенте.

c = Composite();  % One element per worker in the pool
for w = 1:length(c)
    c{w} = 0;    % Value stored on each worker
end

В этом примере показано, как назначить составные элементы в spmd блок.

c = Composite();
spmd
    c = 0;    % Value stored on each worker
end

В этом примере показано, как назначить элементы массива Composite со значением от каждого работника.

c = Composite();
spmd
    c = labindex;
end
c{:}
     1


     2


     3


     4

В этом примере показано, как использовать вектор распределенного массива для задания значений Composite.

d = distributed([3 1 4 2]); % One integer per worker
spmd
    c = getLocalPart(d);    % Unique value on each worker
end
c{:}
     3


     1


     4


     2

Совет

  • Составной компонент создается для работников существующего параллельного пула. Если пул не существует, Composite запускает новый параллельный пул, если автоматический запуск пулов не отключен в ваших параллельных настройках. Если нет параллельного пула и Composite невозможно запустить, результатом является Composite 1 на 1 в рабочей рабочей области клиента.

См. также

| |