[Chapel Merge] Optimize distributed rectangular domain creation

Branch: refs/heads/main
Revision: 689898456bfc7ecb49b87f5c5397cf9e347f3b71
Author: Elliot Ronaghan
Link: Optimize distributed rectangular domain creation by ronawho · Pull Request #21038 · chapel-lang/chapel · GitHub
Log Message:

Optimize distributed rectangular domain creation
When creating distributed rectangular domains, directly create the final distributed domain instead of creating an empty domain and assigning the local domain into it. This eliminates a distributed domain assignment and re-privatization, which gets rid of 3 coforall+ons resulting in some domain creation speedups. Here's the performance results for creating a block distributed domain on 16 nodes of a CS and XC:

./distCreate --size=arraySize.tiny --dist=distType.block -nl 16

16-node-cs-hdr | config | domInit | | ------ | -------: | | before | 0.00464s | | after | 0.00288s | 16-node-xc: | config | domInit | | ------ | -------: | | before | 0.00055s | | after | 0.00027s | Part of #20197
Compare: Comparing 30cda9e40ee59e384d4bfd90f6f2d947c99c8f6d...689898456bfc7ecb49b87f5c5397cf9e347f3b71 · chapel-lang/chapel · GitHub
Diff: https://github.com/chapel-lang/chapel/pull/21038.diff
Modified Files:
modules/internal/ChapelArray.chpl

Added Files:

Removed Files: