Skip to content

Commit

Permalink
Convert DimensionalDist2D from a class to a record, `dimensionalDis…
Browse files Browse the repository at this point in the history
…t2D`. (chapel-lang#23403)

[not reviewed, will get a post-merge review]

Converting the second-to-last distribution to a record. This was more
challenging than the others because:
* it's highly generic
* its code is structured very differently

Most tests seem to be working, though I had to dodge some things that
didn't:

```chapel
  new dmap(new dimensionalDist2D(...))
```

didn't seem to work as in other cases... Removing the 'new dmap()' did
make it work though. This is used so rarely in practice, I can't imagine
a user hitting it in the field, so considered it acceptable, especially
given how many caveats there already are with the distribution.

Doing an init copy of the record as in t1.chpl and t9.chpl also didn't
work for reasons I didn't have the chance to look into. I used a ref
instead.

In addition, I couldn't get the per-dimension modules to link back to
the record type, so just fell back to formatted text instead. I'm not
sure what was going on there.
  • Loading branch information
bradcray authored Sep 15, 2023
2 parents 77086eb + e8e341e commit 23d8b85
Show file tree
Hide file tree
Showing 33 changed files with 278 additions and 115 deletions.
201 changes: 163 additions & 38 deletions modules/dists/DimensionalDist2D.chpl

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions modules/dists/dims/BlockCycDim.chpl
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ type bcdPosInt = int;
//
/*
This Block-Cyclic dimension specifier is for use with the
:class:`DimensionalDist2D` distribution.
``dimensionalDist2D`` distribution.
It specifies the mapping of indices in its dimension
that would be produced by a 1D :class:`~BlockCycDist.blockCycDist` distribution.
Expand Down Expand Up @@ -181,7 +181,7 @@ inline proc _checkFitsWithin(src: integral, type destT)
where isIntegralType(destT)
{
inline proc ensure(arg:bool) {
if !arg then halt("When creating a domain mapped using DimensionalDist2D with a BlockCyclicDim specifier, could not fit BlockCyclicDim's adjusted lowIdx of ", src, " in the domain's idxType ", destT:string);
if !arg then halt("When creating a domain mapped using dimensionalDist2D with a BlockCyclicDim specifier, could not fit BlockCyclicDim's adjusted lowIdx of ", src, " in the domain's idxType ", destT:string);
}
type maxuT = uint(64); // the largest unsigned type
type srcT = src.type;
Expand Down
4 changes: 2 additions & 2 deletions modules/dists/dims/BlockDim.chpl
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ private use DimensionalDist2D;

/*
This Block dimension specifier is for use with the
:class:`DimensionalDist2D` distribution.
``dimensionalDist2D`` distribution.
It specifies the mapping of indices in its dimension
that would be produced by a 1D :class:`~BlockDist.blockDist` distribution.
Expand Down Expand Up @@ -58,7 +58,7 @@ which specifies the bounding box in this dimension.
The ``idxType``, whether provided or inferred, must match
the index type of the domains "dmapped" using the corresponding
``DimensionalDist2D`` distribution.
``dimensionalDist2D`` distribution.
*/
record BlockDim {
// the type of bbStart, bbLength
Expand Down
2 changes: 1 addition & 1 deletion modules/dists/dims/ReplicatedDim.chpl
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ import RangeChunk;

/*
This Replicated dimension specifier is for use with the
:class:`DimensionalDist2D` distribution.
``dimensionalDist2D`` distribution.
The dimension of a domain or array for which this specifier is used
has a *replicand* for each element of ``targetLocales``
Expand Down
6 changes: 3 additions & 3 deletions test/chplvis/benchmarks-hpcc/hpl-vdb.chpl
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ proc main() {
// rows and its low column bound.
//
const MatVectSpace: domain(2)
dmapped DimensionalDist2D(targetLocales,
dmapped dimensionalDist2D(targetLocales,
new BlockCyclicDim(gridRows, lowIdx=1, blkSize),
new BlockCyclicDim(gridCols, lowIdx=1, blkSize))
= {1..n, 1..n+1},
Expand Down Expand Up @@ -217,7 +217,7 @@ proc schurComplement(ref Ab: [?AbD] elemType, AD: domain(?), BD: domain(?), Rest
//
proc replicateD1(Ab, BD) {
const replBD = {1..blkSize, 1..n+1}
dmapped DimensionalDist2D(targetLocales,
dmapped dimensionalDist2D(targetLocales,
new ReplicatedDim(gridRows),
new BlockCyclicDim(gridCols, lowIdx=1, blkSize));
var replB: [replBD] elemType;
Expand All @@ -234,7 +234,7 @@ proc replicateD1(Ab, BD) {
//
proc replicateD2(Ab, AD) {
const replAD = {1..n, 1..blkSize}
dmapped DimensionalDist2D(targetLocales,
dmapped dimensionalDist2D(targetLocales,
new BlockCyclicDim(gridRows, lowIdx=1, blkSize),
new ReplicatedDim(gridCols));
var replA: [replAD] elemType;
Expand Down
25 changes: 23 additions & 2 deletions test/deprecated/dmapType.chpl
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
config var n = 10, addLeaks=false;
config var n = 10, leaksAndBreaks=false;
{
use BlockDist;
var Dist = new dmap(new Block({1..n}));
Expand Down Expand Up @@ -53,7 +53,7 @@ config var n = 10, addLeaks=false;
proc foo(type t) { writeln("foo got ", t: string); }
foo(Private);

if addLeaks {
if leaksAndBreaks {
var Dist = new dmap(new Private());
var Dom: domain(1) dmapped Dist;
var A: [Dom] real;
Expand All @@ -73,3 +73,24 @@ config var n = 10, addLeaks=false;
writeln(Dist2.type:string);
}

{
use DimensionalDist2D, BlockDim;
var lpd = sqrt(numLocales):int;
var MyLocDom = {0..<lpd, 0..<lpd};
var MyLocs: [MyLocDom] locale = reshape(Locales, MyLocDom);
var dimA = new BlockDim(numLocales=lpd, 1..n);
var dimB = new BlockDim(numLocales=lpd, 1..n);
var Dist = if leaksAndBreaks
then new dmap(new DimensionalDist2D(MyLocs, dimA, dimB))
else new DimensionalDist2D(MyLocs, dimA, dimB);
var Dom = {1..n, 1..n} dmapped Dist;
var A: [Dom] real;
writeln(A);

var dim1 = new BlockDim(numLocales=lpd, 1..n);
var dim2 = new BlockDim(numLocales=lpd, 1..n);
const Dist2: dmap(DimensionalDist2D(MyLocs.type, dim1.type, dim2.type, int))
= new DimensionalDist2D(MyLocs, dim1, dim2);
writeln(Dist2.type:string);
}

17 changes: 17 additions & 0 deletions test/deprecated/dmapType.good
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ dmapType.chpl:61: warning: 'Private' is deprecated, please use 'privateDist' ins
dmapType.chpl:68: warning: 'BlockCyclic' is deprecated, please use 'blockCycDist' instead
dmapType.chpl:72: warning: 'BlockCyclic' is deprecated, please use 'blockCycDist' instead
dmapType.chpl:72: warning: 'BlockCyclic' is deprecated, please use 'blockCycDist' instead
dmapType.chpl:84: warning: 'DimensionalDist2D' is deprecated, please use 'dimensionalDist2D' instead
dmapType.chpl:85: warning: 'DimensionalDist2D' is deprecated, please use 'dimensionalDist2D' instead
dmapType.chpl:93: warning: 'DimensionalDist2D' is deprecated, please use 'dimensionalDist2D' instead
dmapType.chpl:92: warning: 'DimensionalDist2D' is deprecated, please use 'dimensionalDist2D' instead
dmapType.chpl:4: warning: The use of 'dmap' is deprecated for this distribution; please replace 'new dmap(new <DistName>(<args>))' with 'new <DistName>(<args>)'
dmapType.chpl:8: warning: The use of 'dmap' is deprecated for this distribution; please replace 'dmap(<DistName>(<args>))' with '<DistName>(<args>)'
dmapType.chpl:14: warning: The use of 'dmap' is deprecated for this distribution; please replace 'new dmap(new <DistName>(<args>))' with 'new <DistName>(<args>)'
Expand All @@ -29,6 +33,8 @@ dmapType.chpl:57: warning: The use of 'dmap' is deprecated for this distribution
dmapType.chpl:61: warning: The use of 'dmap' is deprecated for this distribution; please replace 'dmap(<DistName>(<args>))' with '<DistName>(<args>)'
dmapType.chpl:68: warning: The use of 'dmap' is deprecated for this distribution; please replace 'new dmap(new <DistName>(<args>))' with 'new <DistName>(<args>)'
dmapType.chpl:72: warning: The use of 'dmap' is deprecated for this distribution; please replace 'dmap(<DistName>(<args>))' with '<DistName>(<args>)'
dmapType.chpl:84: warning: The use of 'dmap' is deprecated for this distribution; please replace 'new dmap(new <DistName>(<args>))' with 'new <DistName>(<args>)'
dmapType.chpl:92: warning: The use of 'dmap' is deprecated for this distribution; please replace 'dmap(<DistName>(<args>))' with '<DistName>(<args>)'
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
blockDist(1,int(64),unmanaged DefaultDist)
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Expand All @@ -40,3 +46,14 @@ stencilDist(1,int(64),false)
foo got privateDist
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
blockCycDist(1,int(64))
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
dimensionalDist2D([domain(2,int(64),one)] locale,BlockDim(int(64)),BlockDim(int(64)),int(64))
2 changes: 1 addition & 1 deletion test/distributions/bradc/passDistDomsToFns.chpl
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ var MyLocaleView = {0..#nl1, 0..#nl2};
var MyLocales = reshape(Locales[0..#nl1*nl2], MyLocaleView);

const DimReplicatedBlockcyclicSpace = Space
dmapped DimensionalDist2D(MyLocales,
dmapped dimensionalDist2D(MyLocales,
new ReplicatedDim(numLocales = nl1),
new BlockCyclicDim(numLocales = nl2,
lowIdx = 1, blockSize = 2));
Expand Down
6 changes: 3 additions & 3 deletions test/distributions/dm/s7.chpl
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ const
bdim2 = new BlockCyclicDim(lowIdx=st2, blockSize=blkSize, numLocales=tl2);

const AbD: domain(2, indexType)
dmapped DimensionalDist2D(tla, bdim1, bdim2, "dim") //BC
dmapped dimensionalDist2D(tla, bdim1, bdim2, "dim") //BC
= MatVectSpace;

var Ab: [AbD] elemType; // the matrix A and vector b
Expand All @@ -46,9 +46,9 @@ writeln("n ", n, " blkSize ", blkSize, " locales ", tl1, "*", tl2);
// the domains for the arrays used for replication
const
replAD = {1..n, 1..blkSize} dmapped
DimensionalDist2D(tla, bdim1, rdim2, "distBR"),
dimensionalDist2D(tla, bdim1, rdim2, "distBR"),
replBD = {1..blkSize, 1..n+1} dmapped
DimensionalDist2D(tla, rdim1, bdim2, "distRB");
dimensionalDist2D(tla, rdim1, bdim2, "distRB");

var replA: [replAD] elemType,
replB: [replBD] elemType;
Expand Down
2 changes: 1 addition & 1 deletion test/distributions/dm/s8.chpl
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ const dd2 = new BlockCyclicDim(lowIdx=st2, blockSize=blkSize, numLocales=tl2);

const space = {1..n, 1..n+1};
const AbD
: domain(2, int) dmapped DimensionalDist2D(mylocs, dd1, dd2, "dim")
: domain(2, int) dmapped dimensionalDist2D(mylocs, dd1, dd2, "dim")
= space;

var Ab: [AbD] int;
Expand Down
2 changes: 1 addition & 1 deletion test/distributions/dm/s9.chpl
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ const dd2 = new BlockDim(numLocales=tl2,

const space = {1..n, 1..n+1};
const AbD
: domain(2, int) dmapped DimensionalDist2D(mylocs, dd1, dd2, "dim")
: domain(2, int) dmapped dimensionalDist2D(mylocs, dd1, dd2, "dim")
= space;

var Ab: [AbD] int;
Expand Down
8 changes: 4 additions & 4 deletions test/distributions/dm/t1.chpl
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,16 @@ setupLocales(s1, s2);
var vdf = new ReplicatedDim(s1);
var sdf = new BlockDim(s2, 1, 3);

hd("new DimensionalDist2D()");
var ddf = new unmanaged DimensionalDist2D(mylocs, vdf, sdf, "ddf");
hd("new dimensionalDist2D()");
var ddf = new dimensionalDist2D(mylocs, vdf, sdf, "ddf");
tl();

hd("wrapping ddf in dmap");
var ddfm = new dmap(ddf);
ref ddfm = ddf;
tl();

hd("wrapping ddf in another dmap, without assignment");
//new dmap(ddf);
//ddf;
tl();

i2lTest(ddfm, (1,2));
Expand Down
2 changes: 1 addition & 1 deletion test/distributions/dm/t1.comm-none.good
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
1 oversubscribing Locales(0)
1 setupLocales 2*2
2
2 new DimensionalDist2D()
2 new dimensionalDist2D()
3
3 wrapping ddf in dmap
4
Expand Down
2 changes: 1 addition & 1 deletion test/distributions/dm/t1.good
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
1 mylocs
1 setupLocales 2*2
2
2 new DimensionalDist2D()
2 new dimensionalDist2D()
3
3 wrapping ddf in dmap
4
Expand Down
2 changes: 1 addition & 1 deletion test/distributions/dm/t2.chpl
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ proc testsuite(type T, initphase) {

const vdf = new ReplicatedDim(1);
const sdf = new BlockDim(3, 1:T, 8:T);
const dm = new dmap(new unmanaged DimensionalDist2D(mylocs, vdf, sdf, "dm", idxType=T));
const dm = new dimensionalDist2D(mylocs, vdf, sdf, "dm", idxType=T);

test({1:T..1:T, 0:T..9:T } dmapped dm);
test({1:T..1:T, 1:T..9:T by -1 } dmapped dm);
Expand Down
2 changes: 1 addition & 1 deletion test/distributions/dm/t5a.chpl
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ proc test(message, sel, dd1, dd2) {
hd(dd1.toString(), " + ", dd2.toString(), " sel=", sel); tl();

if selector == 0 || selector == sel {
const dm = new dmap(new DimensionalDist2D(mylocs, dd1, dd2, "dm"));
const dm = new dimensionalDist2D(mylocs, dd1, dd2, "dm");

const Dbase = {1..3, 1..5};
const Ddm = Dbase dmapped dm;
Expand Down
2 changes: 1 addition & 1 deletion test/distributions/dm/t8.chpl
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ proc testsuite(type T, initphase) {

const df8 = new BlockCyclicDim(lowIdx=100, blockSize=7, numLocales=s1);
const df9 = new BlockCyclicDim(lowIdx=-10, blockSize=5, numLocales=s2);
const dm = new dmap(new unmanaged DimensionalDist2D(mylocs, df8, df9, "dm", idxType=T));
const dm = new dimensionalDist2D(mylocs, df8, df9, "dm", idxType=T);

proc tw(a, b, c, d) { test({a:T..b:T, c:T..d:T} dmapped dm); }
inline
Expand Down
8 changes: 4 additions & 4 deletions test/distributions/dm/t9.chpl
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,17 @@ setupLocales(s1, s2);
var vdf = new BlockCyclicDim(lowIdx=-100, blockSize=3, numLocales=s1);
var sdf = new BlockCyclicDim(lowIdx=-10, blockSize=2, numLocales=s2);

hd("new DimensionalDist2D()");
var ddf = new unmanaged DimensionalDist2D(mylocs, vdf, sdf, "ddf");
hd("new dimensionalDist2D()");
var ddf = new dimensionalDist2D(mylocs, vdf, sdf, "ddf");
tl();

hd("wrapping ddf in dmap");
var ddfm = new dmap(ddf);
ref ddfm = ddf;
tl();

// Wrapping a second time would result in double-deletion of ddf.
hd("skipping: wrapping ddf in another dmap, without assignment");
//new dmap(ddf);
//ddf;
tl();

i2lTest(ddfm, (1,1));
Expand Down
2 changes: 1 addition & 1 deletion test/distributions/dm/t9.comm-none.good
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
1 oversubscribing Locales(0)
1 setupLocales 1*3
2
2 new DimensionalDist2D()
2 new dimensionalDist2D()
3
3 wrapping ddf in dmap
4
Expand Down
2 changes: 1 addition & 1 deletion test/distributions/dm/t9.good
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
1 mylocs
1 setupLocales 1*3
2
2 new DimensionalDist2D()
2 new dimensionalDist2D()
3
3 wrapping ddf in dmap
4
Expand Down
8 changes: 4 additions & 4 deletions test/distributions/dm/testUserAPI.chpl
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ const bl2 = new BlockDim(s2, -3..7);
const bc1 = new BlockCyclicDim(s1, 1, 2);
const bc2 = new BlockCyclicDim(s2, -1, 4);

const BlBl = new dmap(new DimensionalDist2D(mylocs, bl1, bl2, "bl1,bl2"));
const BlBc = new dmap(new DimensionalDist2D(mylocs, bl1, bc2, "bl1,bc2"));
const BcBl = new dmap(new DimensionalDist2D(mylocs, bc1, bl2, "bc1,bl2"));
const BcBc = new dmap(new DimensionalDist2D(mylocs, bc1, bc2, "bc1,bc2"));
const BlBl = new dimensionalDist2D(mylocs, bl1, bl2, "bl1,bl2");
const BlBc = new dimensionalDist2D(mylocs, bl1, bc2, "bl1,bc2");
const BcBl = new dimensionalDist2D(mylocs, bc1, bl2, "bc1,bl2");
const BcBc = new dimensionalDist2D(mylocs, bc1, bc2, "bc1,bc2");

proc testDomainAPI2D(param lbl, DR: domain(?), idx, OOBidx1, OOBidx2, intDom) {
inline proc help(dd) {
Expand Down
2 changes: 1 addition & 1 deletion test/io/vass/writeThis-on.chpl
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ const dmp = newDimensionalDist2D(dim1, dim2, Locales);

const ix = (1, 1);
const D = {1..1, 1..1};
const R = D dmapped new dmap(dmp);
const R = D dmapped dmp;
var A: [R] int;

writeln("initializing");
Expand Down
6 changes: 3 additions & 3 deletions test/release/examples/benchmarks/hpcc/hpl.chpl
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ proc main() {
// rows and its low column bound.
//
const MatVectSpace: domain(2)
dmapped DimensionalDist2D(targetLocales,
dmapped dimensionalDist2D(targetLocales,
new BlockCyclicDim(gridRows, lowIdx=1, blkSize),
new BlockCyclicDim(gridCols, lowIdx=1, blkSize))
= {1..n, 1..n+1},
Expand Down Expand Up @@ -214,7 +214,7 @@ proc schurComplement(ref Ab: [?AbD] elemType, AD: domain(?), BD: domain(?), Rest
//
proc replicateD1(Ab, BD) {
const replBD = {1..blkSize, 1..n+1}
dmapped DimensionalDist2D(targetLocales,
dmapped dimensionalDist2D(targetLocales,
new ReplicatedDim(gridRows),
new BlockCyclicDim(gridCols, lowIdx=1, blkSize));
var replB: [replBD] elemType;
Expand All @@ -233,7 +233,7 @@ proc replicateD1(Ab, BD) {
//
proc replicateD2(Ab, AD) {
const replAD = {1..n, 1..blkSize}
dmapped DimensionalDist2D(targetLocales,
dmapped dimensionalDist2D(targetLocales,
new BlockCyclicDim(gridRows, lowIdx=1, blkSize),
new ReplicatedDim(gridCols));
var replA: [replAD] elemType;
Expand Down
6 changes: 3 additions & 3 deletions test/release/examples/primers/distributions.chpl
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ verifyID(BA);
// 2D Dimensional
// --------------
//
// The ``DimensionalDist2D`` distribution lets us build a 2D distribution
// The ``dimensionalDist2D`` distribution lets us build a 2D distribution
// as a composition of specifiers for individual dimensions.
// Under such a "dimensional" distribution each dimension is handled
// independently of the other.
Expand All @@ -260,7 +260,7 @@ verifyID(BA);
// accepts just the number of locales that the indices in the corresponding
// dimension will be distributed across.
//
// The ``DimensionalDist2D`` constructor requires:
// The ``dimensionalDist2D`` constructor requires:
// an ``[0..nl1-1, 0..nl2-1]`` array of locales, where
// ``nl1`` and ``nl2`` are the number of locales in each dimension, and
// two dimension specifiers, created for ``nl1`` and ``nl2`` locale counts,
Expand All @@ -287,7 +287,7 @@ MyLocaleView = {0..#nl1, 0..#nl2};
MyLocales = reshape(Locales[0..#nl1*nl2], MyLocaleView);

const DimReplicatedBlockcyclicSpace = Space
dmapped DimensionalDist2D(MyLocales,
dmapped dimensionalDist2D(MyLocales,
new ReplicatedDim(numLocales = nl1),
new BlockCyclicDim(numLocales = nl2,
lowIdx = 1, blockSize = 2));
Expand Down
6 changes: 3 additions & 3 deletions test/studies/hpcc/HPL/vass/bc.dim.chpl
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ const
const AbD: domain(2, indexType)
// dmapped Block(boundingBox={1..nbb1, 1..nbb2}, targetLocales=tla) //MBD
// dmapped blockCycDist(startIdx=(st1,st2), blocksize=(blkSize,blkSize), targetLocales=tla) //MBC
dmapped DimensionalDist2D(tla, bdim1, bdim2, "dim") //BD //BC
dmapped dimensionalDist2D(tla, bdim1, bdim2, "dim") //BD //BC
= MatVectSpace;

var Ab: [AbD] elemType; // the matrix A and vector b
Expand All @@ -80,9 +80,9 @@ var refsuccess = true;
// the domains for the arrays used for replication
const
replAD = {1..n, 1..blkSize} dmapped
DimensionalDist2D(tla, bdim1, rdim2, "distBR"), //DIM
dimensionalDist2D(tla, bdim1, rdim2, "distBR"), //DIM
replBD = {1..blkSize, 1..n+1} dmapped
DimensionalDist2D(tla, rdim1, bdim2, "distRB"); //DIM
dimensionalDist2D(tla, rdim1, bdim2, "distRB"); //DIM

var replA: [replAD] elemType,
replB: [replBD] elemType;
Expand Down
Loading

0 comments on commit 23d8b85

Please sign in to comment.