Создайте codistributed разреженный массив равномерно распределенных псевдослучайных значений
CS = codistributed.sprand(m,n,density)
CS = sprand(n,codist)
CS = codistributed.sprand(m,n,density)
создает m
-by-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 labindex
локальной частью CS
.
Когда вы используете sprand
на рабочих в параллельном пуле, или в независимом или связывающемся задании (включая pmode), каждый рабочий устанавливает его случайный seed генератора на значение, которое зависит только от ID задачи или labindex
. Поэтому массив на каждом рабочем уникален для того задания. Однако, если вы повторяете задание, вы получаете те же случайные данные.