codistributor

Создайте объект codistributor для кодированных массивов

Синтаксис

codist = codistributor()
codist = codistributor('1d')
codist = codistributor('1d',dim)
codist = codistributor('1d',dim,part)
codist = codistributor('2dbc')
codist = codistributor('2dbc',lbgrid)
codist = codistributor('2dbc',lbgrid,blksize)

Описание

Существует две схемы распределения массивов. Схема, обозначенная вектором символов '1d' распределяет массив вдоль одинарного заданного индекса, размерность распределения, нециклическим, разбиенным способом. Схема, обозначенная '2dbc', используемый программным обеспечением для параллельных матричных расчетов ScaLAPACK, применяется только к двумерным массивам и изменяет обе нижние индексы по прямоугольной вычислительной сетке лабораторий (рабочих) заблокированным, циклическим образом.

codist = codistributor()без аргументов возвращает объект codistributor по умолчанию с параметрами с нулевым или пустым значением, который затем может использоваться в качестве аргумента к другим функциям, чтобы указать, что функция должна создать распределенный по умолчанию массив по возможности с распределением по умолчанию. Для примера,

Z = zeros(..., codistributor())
R = randn(..., codistributor())

codist = codistributor('1d') то же, что и codist = codistributor().

codist = codistributor('1d',dim) также формирует объект codistributor со codist.Dimension = dim и раздел по умолчанию.

codist = codistributor('1d',dim,part) также формирует объект codistributor со codist.Dimension = dim и codist.Partition = part.

codist = codistributor('2dbc') формирует 2-D блок-циклический объект codistributor. Для получения дополнительной информации о '2dbc' распределение, см. 2-Dimensional распределение

codist = codistributor('2dbc',lbgrid) формирует 2-D блок-циклический объект codistributor с лабораторной сеткой, заданной как lbgrid и с размером блока по умолчанию.

codist = codistributor('2dbc',lbgrid,blksize) формирует 2-D блок-циклический объект codistributor с лабораторной сеткой, заданной как lbgrid и с размером блока, заданным как blksize.

codist = getCodistributor(D) возвращает объект codistributor распространяемого массива D.

Примеры

На четырех рабочих местах создайте 3-мерный массив 2 на 6 на 4 с распределением по второму измерению и схеме разбиения [1 2 1 2]. Другими словами, рабочий 1 содержит сегмент 2 на 1 на 4, рабочий 2 сегмент 2 на 2 на 4, и т.д.

spmd
    dim = 2; % distribution dimension
    codist = codistributor('1d',dim,[1 2 1 2],[2 6 4]);
    if mod(labindex,2)
        L = rand(2,1,4);
    else
        L = rand(2,2,4);
    end
    A = codistributed.build(L,codist)
end
A

На четырех рабочих местах создайте кодовый распределенный массив 20 на 5 A, распределенный по строкам (по первой размерности) с равномерной схемой разбиения.

spmd
    dim = 1; % distribution dimension
    partn = codistributor1d.defaultPartition(20);
    codist = codistributor('1d',dim,partn,[20 5]);
    L = magic(5) + labindex;
    A = codistributed.build(L,codist)
end
A
Введенный в R2008b