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