Default computational grid for 2-D block-cyclic distributed arrays
grid = codistributor2dbc.defaultLabGrid()
grid = codistributor2dbc.defaultLabGrid()
returns a vector,
grid = [nrow ncol]
, defining a computational grid of
nrow
-by-ncol
workers in the open parallel
pool, such that numlabs
= nrow
x
ncol
.
The grid defined by codistributor2dbc.defaultLabGrid
is as
close to a square as possible. The following rules define nrow
and ncol
:
If numlabs
is a perfect square, nrow = ncol =
sqrt(numlabs)
.
If numlabs
is an odd power of 2, then nrow =
ncol/2 = sqrt(numlabs/2)
.
nrow <= ncol
.
If numlabs
is a prime, nrow = 1
,
ncol = numlabs
.
nrow
is the greatest integer less than or equal to
sqrt(numlabs)
for which ncol =
numlabs/nrow
is also an integer.
View the computational grid layout of the default distribution scheme for the open parallel pool.
spmd grid = codistributor2dbc.defaultLabGrid end