Создайте Составной объект
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 в рабочей рабочей области клиента.