PstreamExchange.C File Reference
Include dependency graph for PstreamExchange.C:

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 Type >
std::size_t maxTransferCount (const std::size_t max_bytes=std::size_t(0)) noexcept
 Number of elements corresponding to max byte transfer. More...
 
std::size_t maxTransferBytes (const int64_t max_bytes) noexcept
 Upper limit on number of transfer bytes. More...
 
template<class Type >
void exchangeBuffers (const UList< std::pair< int, stdFoam::span< const Type >>> &sends, const UList< std::pair< int, stdFoam::span< Type >>> &recvs, const int tag, const label comm, const int64_t maxComms_bytes=UPstream::maxCommsSize)
 Exchange of contiguous data, with or without chunking. Setup sends and receives, each specified as [rank, span] tuple. More...
 
template<class Container , class Type >
void exchangeContainer (const UList< Container > &sendBufs, UList< Container > &recvBufs, const int tag, const label comm, const bool wait, const int64_t maxComms_bytes=UPstream::maxCommsSize)
 Exchange contiguous data using point-to-point communication. Sends sendBufs, receives into recvBufs. More...
 
template<class Container , class Type >
void exchangeContainer (const Map< Container > &sendBufs, Map< Container > &recvBufs, const int tag, const label comm, const bool wait, const int64_t maxComms_bytes=UPstream::maxCommsSize)
 Exchange contiguous data using point-to-point communication. Sends sendBufs, receives into recvBufs. More...
 

Detailed Description

Original source file PstreamExchange.C

Note
The send/recv windows for chunk-wise transfers:

iter data window ---- ----------- 0 [0, 1*chunk] 1 [1*chunk, 2*chunk] 2 [2*chunk, 3*chunk] ...

In older versions (v2312 and earlier) the number of chunks was determined by the sender sizes and used an extra MPI_Allreduce. However instead rely on the send/recv buffers having been consistently sized, which avoids the additional reduction.

Definition in file PstreamExchange.C.