<div>Given an original communicator of size P and S subcomms each of size P/S, I effectively want to do an "Allgather" with the result distributed over each of the S subcomms. Some options include<br><br>1. point-to-point</div>
<div>2. Allgather, then each process keeps the part that is most relevant to them (limited by memory)<br>3. Creating subcomms for each stratum in the S subcomms, Gather to leader, then Bcast along strata</div><div><br></div>
<div>Are there better ways to do this? The simpler "Gather to subcomm" operation is also useful.</div><div><br></div><div>Background: this redundant redistribution is one approach to relieving coarse grid bottlenecks in multigrid. Making it faster would definitely have a tangible impact on solver performance.</div>