PstreamExchangeConsensus.C File Reference
Include dependency graph for PstreamExchangeConsensus.C:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 Foam
 Namespace for OpenFOAM.
 
 Foam::PstreamDetail
 Implementation details for UPstream/Pstream/MPI etc.
 

Functions

template<class Container , class Type >
void exchangeConsensus (const UList< Container > &sendBufs, UList< Container > &recvBufs, labelUList &recvSizes, const int tag, const label comm)
 Exchange contiguous data using non-blocking consensus exchange (NBX) with optional tracking of the receive sizes. More...
 
template<class Container , class Type >
void exchangeConsensus (const Map< Container > &sendBufs, Map< Container > &recvBufs, const int tag, const label comm)
 Exchange contiguous data using non-blocking consensus exchange (NBX) More...
 

Detailed Description

Original source file PstreamExchangeConsensus.C

Note
The algorithm NBX (Nonblocking consensus exchange) is described by

"Scalable Communication Protocols for Dynamic Sparse Data Exchange", Hoeffler, Siebert, Lumsdaine May 2010 ACM SIGPLAN Notices 45(5):159-168 https://doi.org/10.1145/1837853.1693476

http://unixer.de/publications/img/hoefler-dsde-protocols.pdf

Definition in file PstreamExchangeConsensus.C.