Создайте codistributed разреженный массив равномерно распределенных псевдослучайных значений
CS = codistributed.sprand(m,n,density)
CS = sprand(n,codist)
CS = codistributed.sprand(m,n,density)
создает m
- n
разреженный codistributed массив приблизительно с density*m*n
равномерно распределенные ненулевые двойные записи.
Дополнительные аргументы к codistributed.sprand
должен быть задан после обязательных аргументов, и в следующем порядке:
codist
— Объект codistributor определение схемы распределения полученного массива. Если не использовано, массив распределяется с помощью схемы распределения по умолчанию. Для получения информации о построении codistributor объекты, смотрите страницы с описанием для codistributor1d
и codistributor2dbc
.
'noCommunication'
— Указывает, что никакая коммуникация межрабочего не должна быть выполнена при построении массива, пропуске некоторых шагов проверки ошибок.
CS = sprand(n,codist)
совпадает с CS = codistributed.sprand(n, codist)
. Можно также использовать дополнительные аргументы с этим синтаксисом. Чтобы использовать схему распределения по умолчанию, задайте codistributor конструктора без аргументов. Например:
spmd CS = codistributed.sprand(8,8,0.2,codistributor1d()); end
С четырьмя рабочими,
spmd(4) CS = codistributed.sprand(1000,1000,0.001); end
создает разреженный codistributed двойной массив 1000 на 1000 CS
приблизительно с 1 000 ненулей. CS
распределяется его вторым измерением (столбцы), и каждый рабочий содержит 1000 250 локальную часть CS
.
spmd(4) codist = codistributor1d(2,1:numlabs); CS = sprand(10,10,0.1,codist); end
создает 10 10 codistributed двойной массив CS
приблизительно с 10 ненулями. CS
распределяется его столбцами, и каждый рабочий содержит 10-by-labindex
локальная часть CS
.
Когда вы используете sprand
на рабочих в параллельном пуле, или в независимом или связывающемся задании, каждый рабочий устанавливает его начальное значение (зерно) генератора значению, которое зависит только от labindex
или ID задачи. Поэтому массив на каждом рабочем уникален для того задания. Однако, если вы повторяете задание, вы получаете те же случайные данные.