Branch: refs/heads/main
Revision: 7804d4f
Author: ronawho
Link: Disallow duplicate targetLocales for Block arrays by ronawho · Pull Request #20571 · chapel-lang/chapel · GitHub
Log Message:
Merge pull request #20571 from ronawho/no-dup-targetLoc-block
Disallow duplicate targetLocales for Block arrays
[reviewed by @benharsh]
Block didn't explicitly disallow duplicate targetLocales before, but
several operations didn't work correctly and some upcoming optimizations
we want to make would further break things. This PR changes that to
explicitly disallow duplicates by default, and adds an undocumented
allowDuplicateTargetLocales
param in case we or users really want to
play with targetLocale oversubscription. When this param is thrown, we
also workaround the known bugs at the expense of performance. I suspect
if there is any demand for this we'd eventually make a new distribution,
but for now we wanted some way to get the old behavior.
Note that this is an always on check instead of only on with bound
checks or something. We could make it a bound check only, but it should
be trivially fast in the context of distributed array creation.
This did require some updates for tests that had duplicate
targetLocales. MultiBlockDist2DLocales
and mandelbrot-fancy
were
trying to emulate cyclic dists with block. Update mandelbrot-fancy to
use cyclic (the test predated cyclic, but is what it wanted originally)
and just remove the duplicate cases from MultiBlockDist2DLocales since
it's really just trying to test 2D locales. There was nothing about
modifyLocales
that required duplicates, it's just testing non-default
locales, so adjust the problem size slightly. The other tests only had
duplicates for comm=none, where they are now skipped.
Resolves Disallow duplicates for BlockDist targetLocales · Issue #20162 · chapel-lang/chapel · GitHub
Modified Files:
A test/distributions/block/duplicateTargetLocales.allow.good
A test/distributions/block/duplicateTargetLocales.chpl
A test/distributions/block/duplicateTargetLocales.compopts
A test/distributions/block/duplicateTargetLocales.noallow.good
A test/distributions/nelson/MultiBlockDist2DLocales.skipif
A test/functions/vass/ref-intent-bug-2big.skipif
A test/optimizations/bulkcomm/asenjo/ptransDR/v1/ptrans.skipif
A test/optimizations/bulkcomm/asenjo/ptransDR/v2/ptrans.skipif
A test/optimizations/bulkcomm/asenjo/stencilDR/v1/stencil.skipif
A test/optimizations/bulkcomm/asenjo/stencilDR/v2/stencil.skipif
A test/studies/hpcc/HPL/vass/bl.md.skipif
A test/studies/hpcc/common/bradc/unit/modifyLocales.skipif
A test/studies/hpcc/common/bradc/unit/multipleDomains2.skipif
R test/distributions/nelson/MultiBlockDist2DLocales.comm-none.good
R test/studies/hpcc/common/bradc/unit/modifyLocales.comm-none.good
R test/studies/hpcc/common/bradc/unit/multipleDomains2.comm-none.good
M modules/dists/BlockDist.chpl
M test/distributions/nelson/MultiBlockDist2DLocales.chpl
M test/distributions/nelson/MultiBlockDist2DLocales.good
M test/studies/hpcc/common/bradc/unit/modifyLocales.chpl
M test/studies/hpcc/common/bradc/unit/modifyLocales.good
M test/studies/shootout/mandelbrot/jacobnelson/mandelbrot-fancy.chpl
Compare: https://github.com/chapel-lang/chapel/compare/e0f13ac5a493...7804d4f22fe3