Composite

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

Описание

пример

Примечание

Composite переменные обычно создаются на клиенте, когда значения возвращены от тела spmd оператор. Поэтому редко необходимо создавать Composite объекты непосредственно. Для получения дополнительной информации о работе с Composite массивы, смотрите, Составляет композит.

C = Composite() создает Composite объект на клиенте, использующем рабочих от параллельного пула.

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

На фактическое количество рабочих ссылается Composite объект зависит от размера пула и любого существующего Composite объекты.

Создать Composite возразите вручную, необходимо сделать так за пределами любого spmd операторы.

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

Примеры

свернуть все

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

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

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

p = parpool("local",4);
c = Composite();
spmd
    c = 0;    % Value stored on each worker
end

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

p = parpool("local",4);
c = Composite();
spmd
    c = labindex;
end
c{:}
     1


     2


     3


     4

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

p = parpool('local',4);
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

Входные параметры

свернуть все

Ограничение на количество рабочих в виде вектора. nlabs должен быть вектор из длины 1 или 2, содержа целые числа или Inf. Если nlabs имеет длину 1, она задает точное количество рабочих, чтобы использовать. Если nlabs имеет размер 2, он задает минимальное и максимальное количество рабочих, чтобы использовать

Выходные аргументы

свернуть все

Составной массив на клиенте, использующем рабочих от параллельного пула, возвращенного как Composite объект.

Советы

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

Смотрите также

| | |

Введенный в R2008a