[Chapel Merge] Enure default rectangular bulk transfers always respect sublocales

Branch: refs/heads/main
Revision: 07f6ceb3fe56e0baeefda0624928885705685665
Author: DanilaFe
Link: Enure default rectangular bulk transfers always respect sublocales by DanilaFe · Pull Request #25642 · chapel-lang/chapel · GitHub
Log Message:
Enure default rectangular bulk transfers always respect sublocales (#25642)

Follow-up to Ensure bulk transfers work correctly in the presence of sublocales by DanilaFe · Pull Request #25632 · chapel-lang/chapel · GitHub. Closes
Bulk transfer with a non-contiguous slice from host to device segfaults · Issue #25634 · chapel-lang/chapel · GitHub. Closes
[Bug]: cannot use an array of sublocales in place of `here.gpus` · Issue #25640 · chapel-lang/chapel · GitHub.

This PR adjusts other parts of the bulk transfer logic in
DefaultRectangular.chpl to check for sublocale equality as well as
locale equality. See the original PR for an explanation of what goes
wrong. The previous PR only fixed the simple case (contiguous regions).
However, the complex case (non-contiguous regions) remained broken. This
PR expands the fix, and consolidates testing into a single test with 8
cases ({ simple, complex} x { device-device, device-host, host-device,
host-host}).

Reviewed by @jabraham17 -- thanks!

Testing

  • GPU
  • GASNet

Compare: Comparing aec6d566693fe634f679ed306e294b6ce25c03bb...0785915699c7d20ec51d681c34e183f6cbf37d4c · chapel-lang/chapel · GitHub

Diff:
M modules/internal/DefaultRectangular.chpl
A test/gpu/native/bulkTransferHereGpus.chpl
A test/gpu/native/bulkTransferHereGpus.good
A test/gpu/native/remote-bulk-transfers-par.chpl
A test/gpu/native/remote-bulk-transfers-par.compopts
A test/gpu/native/remote-bulk-transfers-par.execopts
A test/gpu/native/remote-bulk-transfers-par.good
A test/gpu/native/remote-bulk-transfers.chpl
A test/gpu/native/remote-bulk-transfers.complex.good
A test/gpu/native/remote-bulk-transfers.compopts
A test/gpu/native/remote-bulk-transfers.execopts
R100 test/gpu/native/transfer-to-remote-from-host.good test/gpu/native/remote-bulk-transfers.simple.good
D test/gpu/native/remote-to-remote-transfer-from-host.chpl
D test/gpu/native/remote-to-remote-transfer-from-host.good
D test/gpu/native/transfer-to-remote-from-host.chpl
https://github.com/chapel-lang/chapel/pull/25642.diff