ones - Create codistributed array of all ones - MATLAB (original) (raw)
Create codistributed array of all ones
Syntax
Description
`cO` = ones([n](#mw%5F511b6a06-0c87-4f60-83f1-a1d903f0fd13),[codist](#mw%5F3facbfc0-79d5-4550-89af-7f60388e5fdf))
creates an n
-by-n
codistributed matrix of ones and uses codist
to specify the distribution of the array values across the workers.
Specify codist
as "codistributed"
to use the default codistributor1d
distribution scheme or the distribution scheme defined by a codistributor1d or codistributor2dbc object.
When you create the codistributed array in a communicating job or spmd
block, the function creates an array on each worker. If you create a codistributed array outside of a communicating job or spmd
block, the array is stored only on the worker or client that creates the codistributed array.
By default, the codistributed array has the underlying type double
.
`cO` = ones([sz](#mw%5Fa278766e-47d6-4925-8aca-56fa1f1e5d46),[codist](#mw%5F3facbfc0-79d5-4550-89af-7f60388e5fdf))
creates a codistributed array of ones where the size vectorsz
defines the size of cO
. For example, ones([2 3],"codistributed")
creates a 2-by-3 codistributed array.
`cO` = ones([sz1,...,szN](#mw%5F5e7e8918-de2c-42e5-9b4f-9dcba15a1064),[codist](#mw%5F3facbfc0-79d5-4550-89af-7f60388e5fdf))
creates an sz1
-by-...-by-szN
codistributed array of ones where sz1,...,szN
indicates the size of each dimension.
`cO` = ones(___,[datatype](#mw%5F6390f0b6-b25f-438a-86d5-6513fa6714eb),[codist](#mw%5F3facbfc0-79d5-4550-89af-7f60388e5fdf))
creates a codistributed array of ones with the underlying typedatatype
. For example,ones(1,"int8","codistributed")
creates a codistributed 8-bit scalar integer 1
. You can use this syntax with any of the size arguments in the previous syntaxes. You must specifycodist
after the array size and data type arguments.
`cO` = ones(___,"noCommunication")
creates a codistributed array of ones without using communication between workers.
When you create very large arrays or your communicating job or spmd
block uses many workers, worker-worker communication can slow down array creation. Use this syntax to improve the performance of your code by removing the time required for worker-worker communication.
Tip
When you use this syntax, some error checking steps are skipped. Use this syntax to improve the performance of your code after you prototype your code without specifying "noCommunication"
.
You must specify "noCommunication"
after the size, data type and codist arguments.
`cO` = ones(___,like=[p](#mw%5Fc6c26f7e-c406-4b27-a3dd-9ffa2e86be19))
uses the array p
to create a codistributed array of ones. You can also specify "noCommunication"
as part of the function call.
The returned array cI
has the same underlying type, sparsity, and complexity (real or complex) as p
.
Examples
Create Codistributed Ones Matrix
Create a 1000-by-1000 codistributed double matrix of ones, distributed by its second dimension (columns).
spmd(4) C = ones(1000,"codistributed"); end
With four workers, each worker contains a 1000-by-250 local piece ofC
.
Create a 1000-by-1000 codistributed uint16
matrix of ones, distributed by its columns.
spmd(4) codist = codistributor1d(2,100*[1:spmdSize]); C = ones(1000,1000,"uint16",codist) end
Each worker contains a 100-by-spmdIndex
local piece ofC
.
Input Arguments
n
— Size of square matrix
integer
Size of the square matrix, specified as an integer.
- If
n
is0
, thencO
is an empty matrix. - If
n
is negative, then the function treats it as0
.
codist
— Distribution scheme for codistributed array
"codistributed"
| codistributor1d
object | codistributor2dbc
object
Distribution scheme for codistributed array, specified as one of these options:
"codistributed"
— Uses the default distribution scheme defined by the defaultcodistributor1d
object.- codistributor1d object — Uses the one-dimensional distribution scheme defined in a
codistributor1d
object. To use the default 1-D distribution scheme, you can specify thecodistributor1d
function without arguments. - codistributor2dbc object — Uses the two-dimensional block-cyclic distribution scheme defined in a
codistributor2dbc
object. To use the default 2-D block-cyclic distribution scheme, you can specify thecodistributor2dbc
function without arguments.
sz
— Size of each dimension (as a row vector)
integer row vector
Size of each dimension, specified as an integer row vector. Each element of this vector indicates the size of the corresponding dimension:
- If the size of any dimension is
0
, thencO
is an empty array. - If the size of any dimension is negative, then the function treats it as
0
. - Beyond the second dimension,
ones
ignores trailing dimensions with a size of1
. For example,ones([3 1 1 1],"codistributed")
produces a 3-by-1 codistributed vector of ones.
Example: sz = [2 3 4]
creates a 2-by-3-by-4 codistributed array.
sz1,...,szN
— Size of each dimension (as separate arguments)
integer values
Size of each dimension, specified as separate arguments ofcodistributed
integer values.
- If the size of any dimension is
0
, thencO
is an empty array. - If the size of any dimension is negative, then the function treats it as
0
. - Beyond the second dimension, the function ignores trailing dimensions with a size of
1
.
datatype
— Array underlying data type
"double"
(default) | "single"
| "logical"
| "int8"
| "uint8"
| ...
Underlying data type of the returned array, specified as one of these options:
"double"
"single"
"logical"
"int8"
"uint8"
"int16"
"uint16"
"int32"
"uint32"
"int64"
"uint64"
p
— Prototype of array to create
codistributed
array
Prototype of array to create, specified as a codistributed
array.
If you do not specify the datatype, the resulting codistributed array has the same underlying type, sparsity, and complexity (real or complex) as p
.
Version History
Introduced in R2006b