exponenta event banner

codistributor2dbc

Создайте 2-й циклический блоком объект codistributor для множеств codistributed

Синтаксис

codist = codistributor2dbc()
codist = codistributor2dbc(lbgrid)
codist = codistributor2dbc(lbgrid,blksize)
codist = codistributor2dbc(lbgrid,blksize,orient)
codist = codistributor2dbc(lbgrid,blksize,orient,gsize)

Описание

2-й циклический блоком codistributor может использоваться только для двумерных множеств. Он распределяет массивы вдоль двух подстрочных индексов по прямоугольной вычислительной сетке лабораторий (рабочих) блочно-циклическим образом. Для полного описания 2-го циклического блоком распределения параметры по умолчанию и отношения между размером блока и сеткой лаборатории, видят 2-мерное Распределение. 2-й циклический блоком codistributor используется параллельной матричной библиотекой программного обеспечения вычисления ScaLAPACK.

codist = codistributor2dbc() формирует 2-D блок-циклический codistributor2dbc объект coddistributor, использующий сетку лаборатории по умолчанию и размер блока.

codist = codistributor2dbc(lbgrid) формирует объект 2-D block-cyclic codistributor, используя заданную сетку лаборатории и размер блока по умолчанию. lbgrid должен быть двухэлементным вектором, определяющим строки и столбцы лабораторной сетки, а строки, умноженные на столбцы, должны равняться числу работников для распределенного по кодам массива.

codist = codistributor2dbc(lbgrid,blksize) формирует объект 2-D block-cyclic codistributor, используя указанные сетку лаборатории и размер блока.

codist = codistributor2dbc(lbgrid,blksize,orient) позволяет использовать аргумент ориентации. Допустимые значения для аргумента ориентации: 'row' для ориентации строки, и 'col' для ориентации колонн сетки лаборатории. По умолчанию используется ориентация строки.

Результирующий распространитель любого из приведенных выше синтаксисов является неполным, так как его глобальный размер не указан. Codistributor, построенный таким образом, может использоваться в качестве аргумента для других функций в качестве шаблона codistributor при создании codistributed-массивов.

codist = codistributor2dbc(lbgrid,blksize,orient,gsize) формирует объект coddistributor, распределяющий массивы с глобальным размером gsize. Результирующий объект codistributor является полным и поэтому может использоваться для построения распределенного по коду массива из его локальных частей с помощью codistributed.build. Чтобы использовать значения по умолчанию для лабораторной сетки, размера блока и ориентации, задайте их с помощью codistributor2dbc.defaultLabGrid, codistributor2dbc.defaultBlockSize, и codistributor2dbc.defaultOrientationсоответственно.

Примеры

Используйте объект coddistributor2dbc для создания Nоколо-N матрица единиц.

N = 1000;
spmd
    codistr = codistributor2dbc();  
    D = ones(N,codistr);
end    

Использовать полностью указанный объект coddistributor2dbc для создания тривиала Nоколо-N codtulated matrix из своих локальных частей. Затем визуализируйте, какие элементы хранятся на работнике 2.

N = 1000;
spmd
    codistr = codistributor2dbc(...
                 codistributor2dbc.defaultLabGrid, ...
                 codistributor2dbc.defaultBlockSize, ...
                 'row',[N,N]);
    myLocalSize = [length(codistr.globalIndices(1)), ...
                   length(codistr.globalIndices(2))]; 
    myLocalPart = labindex*ones(myLocalSize);
    D = codistributed.build(myLocalPart,codistr);
end
spy(D==2);