|
template<typename... Args> |
| CombinedInPlaceCpuPackInfo (std::shared_ptr< LatticeStorageSpecification_T > &storageSecification, Args &&... args) |
|
| ~CombinedInPlaceCpuPackInfo () override=default |
|
bool | constantDataExchange () const override |
| Should return true if the amount of data that is packed for a given block in direction "dir" is guaranteed to remain constant over time.
|
|
bool | threadsafeReceiving () const override |
| Must return false if calling unpackData and/or communicateLocal is not thread-safe.
|
|
void | unpackData (IBlock *receiver, stencil::Direction dir, mpi::RecvBuffer &buffer) override |
| Unpack received Data.
|
|
void | communicateLocal (const IBlock *sender, IBlock *receiver, stencil::Direction dir) override |
| Copy data from one local block to another local block.
|
|
void | packDataImpl (const IBlock *sender, stencil::Direction dir, mpi::SendBuffer &outBuffer) const override |
| Pack data from a block into a send buffer.
|
|
void | pack (stencil::Direction dir, unsigned char *buffer, IBlock *block) const |
|
void | unpack (stencil::Direction dir, unsigned char *buffer, IBlock *block) const |
|
uint_t | size (stencil::Direction dir, IBlock *block) const |
|
| UniformPackInfo ()=default |
|
virtual | ~UniformPackInfo ()=default |
|
void | packData (const IBlock *sender, stencil::Direction dir, mpi::SendBuffer &buffer) const |
| Pack data from a block into a send buffer.
|
|
virtual void | beforeStartCommunication () |
| This function is called once before the communication is started by the UniformBufferedScheme.
|
|
virtual void | afterStartCommunication () |
| This function is called once after the communication has been started by the UniformBufferedScheme.
|
|
virtual void | beforeWait () |
| This function is called once before the UniformBufferedScheme waits for the communication to finish.
|
|
virtual void | afterWait () |
| This function is called once after the communication has been finished by the UniformBufferedScheme.
|
|
template<typename LatticeStorageSpecification_T , typename EvenPackInfo , typename OddPackInfo >
Should return true if the amount of data that is packed for a given block in direction "dir" is guaranteed to remain constant over time.
False otherwise. If you are not sure what to return, return false! Returning false is always safe. Falsely returning true will lead to errors! However, if the data can be guaranteed to remain constant over time, returning true enables performance optimizations during the communication.
Implements walberla::communication::UniformPackInfo.
template<typename LatticeStorageSpecification_T , typename EvenPackInfo , typename OddPackInfo >