Создайте распределенный массив из распределенных данных
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