codistributed.build

Создайте codistributed массив из распределенных данных

Синтаксис

D = codistributed.build(L,codist)
D = codistributed.build(L,codist,'noCommunication')

Описание

D = codistributed.build(L,codist) формирует codistributed массив с getLocalPart(D) = L. codistributed D массивов создается, как будто вы объединили все копии локального массива L. Схема распределения задана codist. Глобальная проверка ошибок гарантирует, что локальные части соответствуют заданной схеме распределения. Для получения информации о построении codistributor объекты, смотрите страницы с описанием для codistributor1d и codistributor2dbc.

D = codistributed.build(L,codist,'noCommunication') создает codistributed массив, не выполняя коммуникаций межрабочего для проверки ошибок.

codist должен быть завершен, который можно проверить вызов codist.isComplete(). Требования к размеру и структуре локальной части L зависят от класса codist. Для 1D и 2D циклического блоком codistributors L должен иметь тот же класс и разреженность на всех рабочих. Кроме того, локальная часть L должна представлять область, описанную методом globalIndices на codist.

Примеры

Создайте codistributed массив размера, 1001 1001 таким образом, что столбец ii содержит значение ii.

spmd
    N = 1001;
    globalSize = [N,N];
    % Distribute the matrix over the second dimension (columns),
    % and let the codistributor derive the partition from the 
    % global size.
    codistr = codistributor1d(2, ...
                 codistributor1d.unsetPartition,globalSize)
 
    % On 4 workers, codistr.Partition equals [251,250,250,250].
    % Allocate storage for the local part.
    localSize = [N, codistr.Partition(labindex)];
    L = zeros(localSize);
    
    % Use globalIndices to map the indices of the columns 
    % of the local part into the global column indices.
    globalInd = codistr.globalIndices(2); 
    % On 4 workers, globalInd has the values:
    % 1:251    on worker 1
    % 252:501  on worker 2
    % 502:751  on worker 3
    % 752:1001 on worker 4
    
    % Initialize the columns of the local part to 
    % the correct value.
    for localCol = 1:length(globalInd)
        globalCol = globalInd(localCol);
        L(:,localCol) = globalCol;
    end
    D = codistributed.build(L,codistr)
end

Представленный в R2009b