ENH: bundle Pstream:: AllGather methods

- bundles frequently used 'gather/scatter' patterns more consistently.

  - combineAllGather     -> combineGather + broadcast
  - listCombineAllGather -> listCombineGather + broadcast
  - mapCombineAllGather  -> mapCombineGather + broadcast
  - allGatherList        -> gatherList + scatterList
  - reduce               -> gather + broadcast (ie, allreduce)

- The allGatherList currently wraps gatherList/scatterList, but may be
  replaced with a different algorithm in the future.

STYLE: PstreamCombineReduceOps.H is mostly unneeded now
This commit is contained in:
Mark Olesen
2022-03-28 16:30:51 +02:00
parent e98acdc4fc
commit d38de84d21
105 changed files with 935 additions and 605 deletions

View File

@ -418,8 +418,12 @@ void Foam::multiLevelDecomp::decompose
);
label nPoints = returnReduce(domainPoints.size(), sumOp<label>());
Pstream::listCombineGather(nOutsideConnections, plusEqOp<label>());
Pstream::broadcast(nOutsideConnections);
Pstream::listCombineAllGather
(
nOutsideConnections,
plusEqOp<label>()
);
label nPatches = 0;
label nFaces = 0;
for (const label nConnect : nOutsideConnections)
@ -526,12 +530,11 @@ void Foam::multiLevelDecomp::decompose
}
reduce(nPoints, sumOp<label>());
Pstream::listCombineGather
Pstream::listCombineAllGather
(
nOutsideConnections,
plusEqOp<label>()
);
Pstream::broadcast(nOutsideConnections);
label nPatches = 0;
label nFaces = 0;