exponenta event banner

codistributed.sprandn

Создание распределенного разреженного массива равномерно распределенных псевдослучайных значений

Синтаксис

CS = codistributed.sprandn(m,n,density)
CS = sprandn(n,codist)

Описание

CS = codistributed.sprandn(m,n,density) создает mоколо-n разреженный распределенный массив с приблизительно density*m*n обычно распределенные ненулевые двойные записи.

Необязательные аргументы для codistributed.sprandn должны быть указаны после требуемых аргументов и в следующем порядке:

  • codist - объект-распространитель, задающий схему распределения результирующего массива. Если этот параметр опущен, массив распределяется с использованием схемы распределения по умолчанию. Сведения о построении объектов coddistributor см. на страницах ссылок для codistributor1d и codistributor2dbc.

  • 'noCommunication' - Указывает, что при построении массива не должно выполняться взаимодействие между сотрудниками, пропуская некоторые шаги проверки ошибок.

CS = sprandn(n,codist) является таким же, как CS = codistributed.sprandn(n, codist). С помощью этого синтаксиса можно также использовать необязательные аргументы. Чтобы использовать схему распределения по умолчанию, укажите конструктор coddistributor без аргументов. Например:

spmd
    CS = codistributed.sprandn(8,8,0.2,codistributor1d());
end

Примеры

С четырьмя рабочими,

spmd(4)
    CS = codistributed.sprandn(1000,1000,0.001);
end

создает разреженный распределенный двойной массив 1000 на 1000 CS с приблизительно 1000 ненулей. CS распределяется по своему второму измерению (столбцам), и каждый рабочий содержит локальный фрагмент 1000 на 250 CS.

spmd(4)
    codist = codistributor1d(2,1:numlabs);
    CS = sprandn(10,10,0.1,codist);
end

создает двойной распределенный массив 10 на 10 CS с приблизительно 10 ненулевыми значениями. CS распределяется по столбцам, и каждый работник содержит 10-by-labindex локальная часть CS.

Совет

При использовании sprandn на рабочих в параллельном пуле или в независимом или связном задании каждый работник устанавливает свое случайное начальное число генератора в значение, которое зависит только от labindex или идентификатор задачи. Поэтому массив на каждом работнике уникален для этого задания. Однако при повторении задания получаются те же случайные данные.

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