codistributed.sprand - Create codistributed sparse array of uniformly distributed pseudo-random values - MATLAB (original) (raw)

Create codistributed sparse array of uniformly distributed pseudo-random values

Syntax

CS = codistributed.sprand(m,n,density) CS = sprand(n,codist) DS = distributed.sprand(___,typename)

Description

CS = codistributed.sprand(m,n,density) creates an m-by-n sparse codistributed array with approximately density*m*n uniformly distributed nonzero double entries.

Optional arguments to codistributed.sprand must be specified after the required arguments, and in the following order:

CS = sprand(n,codist) is the same as CS = codistributed.sprand(n, codist). You can also use the optional arguments with this syntax. To use the default distribution scheme, specify a codistributor constructor without arguments. For example:

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

DS = distributed.sprand(___,typename) also specifies the data type (class) for any of the previous syntaxes. The typename input can be either "single" or "double". (since R2025a)

Examples

With four workers, create a 1000-by-1000 sparse codistributed double arrayCS with approximately 1000 nonzeros. CS is distributed by its second dimension (columns).

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

Create a 10-by-10 codistributed double array CS with approximately 10 nonzeros. CS is distributed by its columns, and each worker contains a 10-by-spmdIndex local piece of CS.

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

Create a random 500-by-1000 sparse codistributed single-precision array with density 0.1.

spmd(5) CS = codistributed.sprand(500,1000,0.1,"single"); end

Tips

When you use sprand on the workers in the parallel pool, or in an independent or communicating job, each worker sets its random generator seed to a value that depends only on the spmdIndex or task ID. Therefore, the array on each worker is unique for that job. However, if you repeat the job, you get the same random data.

Version History

Introduced in R2009b

expand all

You can specify the output data type by specifying thetypename argument as "double" or"single".