Создайте распределенный массив из распределенных данных
D = codistributed.build(L,codist)
D = codistributed.build(L,codist,'noCommunication')
D = codistributed.build(L,codist) формирует кодовый распределенный массив с getLocalPart(D) = L. Кодирование распределенных D массива создается так, как если бы вы объединили все копии локального массива L. Схема распределения определяется codist. Проверка глобальной ошибки гарантирует, что локальные части соответствуют указанной схеме распределения. Для получения информации о построении объектов codistributor смотрите страницы с описанием для codistributor1d и codistributor2dbc.
D = codistributed.build(L,codist,'noCommunication') создает распределенный по коду массив, не выполняя никаких межсетевых коммуникаций для проверки на ошибки.
codist должен быть полным, который можно проверить, позвонив codist.isComplete(). Требования к размеру и структуре локальной части L зависят от класса codist. Для 1-D и 2-D циклических кодовых распространителей, L должен иметь одинаковый класс и разреженность по всем работникам. Кроме того, локальная часть L должна представлять область, описанную globalIndices метод по codist.
Создайте кодированный массив размера 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
codistributor1d | codistributor2dbc | gather | getLocalPart | globalIndices | redistribute | subsasgn | subsref