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

@ -1063,10 +1063,8 @@ void Foam::functionObjects::forces::calcForcesMoment()
}
}
Pstream::listCombineGather(force_, plusEqOp<vectorField>());
Pstream::listCombineGather(moment_, plusEqOp<vectorField>());
Pstream::broadcast(force_);
Pstream::broadcast(moment_);
Pstream::listCombineAllGather(force_, plusEqOp<vectorField>());
Pstream::listCombineAllGather(moment_, plusEqOp<vectorField>());
}

View File

@ -468,8 +468,7 @@ void Foam::functionObjects::propellerInfo::updateSampleDiskCells()
}
}
Pstream::listCombineGather(pointMask_, orEqOp<bool>());
Pstream::broadcast(pointMask_);
Pstream::listCombineAllGather(pointMask_, orEqOp<bool>());
}
@ -774,8 +773,7 @@ Foam::tmp<Foam::Field<Type>> Foam::functionObjects::propellerInfo::interpolate
}
}
Pstream::listCombineGather(field, maxEqOp<Type>());
Pstream::broadcast(field);
Pstream::listCombineAllGather(field, maxEqOp<Type>());
return tfield;
}