ug4
Parallel Algebra Communication Scheme

Communication Scheme for parallel Algebra. More...

Classes

class  ug::CommunicationScheme< TDerived, TValue >
 CRTP Base class for communications on layout/interfaces. More...
 
class  ug::CommunicationScheme< TDerived, bool >
 CRTP Base class for communications on layout/interfaces. More...
 
class  ug::StdArrayCommunicationScheme< TArray >
 Communication Scheme for synchronization of arrays or similar datastructures. More...
 

Functions

template<typename TCommunicationScheme >
void ug::CommunicateFromMasterToSlave (HorizontalAlgebraLayouts &layouts, TCommunicationScheme &scheme)
 
template<typename TCommunicationScheme >
void ug::CommunicateFromSlaveToMaster (HorizontalAlgebraLayouts &layouts, TCommunicationScheme &scheme)
 
template<typename TCommunicationScheme >
void ug::CommunicateOnInterfaces (pcl::InterfaceCommunicator< IndexLayout > &communicator, const IndexLayout &sendingLayout, const IndexLayout &receivingLayout, TCommunicationScheme &scheme)
 sends data over a CommunicationScheme from a sendingLayout to a receivingLayout More...
 
template<typename TPIDs , typename TReceiveScheme >
void ug::ReceiveOnInterfaces (pcl::InterfaceCommunicator< IndexLayout > &communicator, TPIDs &pids, IndexLayout &layout, TReceiveScheme &receiver)
 receives data over a interface based on a CommunicationScheme on a subgroup of processes More...
 
template<typename TSendingScheme , typename TPIDs >
void ug::SendOnInterfaces (pcl::InterfaceCommunicator< IndexLayout > &communicator, TPIDs &pids, IndexLayout &layout, TSendingScheme &sender)
 sends data over a interface based on a CommunicationScheme to a subgroup of processes More...
 

Detailed Description

Communication Scheme for parallel Algebra.

Function Documentation

◆ CommunicateFromMasterToSlave()

template<typename TCommunicationScheme >
void ug::CommunicateFromMasterToSlave ( HorizontalAlgebraLayouts layouts,
TCommunicationScheme &  scheme 
)

◆ CommunicateFromSlaveToMaster()

template<typename TCommunicationScheme >
void ug::CommunicateFromSlaveToMaster ( HorizontalAlgebraLayouts layouts,
TCommunicationScheme &  scheme 
)

◆ CommunicateOnInterfaces()

template<typename TCommunicationScheme >
void ug::CommunicateOnInterfaces ( pcl::InterfaceCommunicator< IndexLayout > &  communicator,
const IndexLayout sendingLayout,
const IndexLayout receivingLayout,
TCommunicationScheme &  scheme 
)

sends data over a CommunicationScheme from a sendingLayout to a receivingLayout

CommunicateOnInterfaces

Template Parameters
TCommunicationSchemetype of the sending/receiving CommunicationScheme
Parameters
communicatorInterfaceCommunicator used to send data
sendingLayoutlayout to send data from
receivingLayoutlayout to receive data from
schemeCommunicationScheme to use

References pcl::SingleLevelLayout< TInterface >::begin(), ug::BinaryBuffer::buffer(), pcl::InterfaceCommunicator< TLayout >::communicate(), pcl::SingleLevelLayout< TInterface >::end(), pcl::SingleLevelLayout< TInterface >::interface(), pcl::SingleLevelLayout< TInterface >::proc_id(), pcl::InterfaceCommunicator< TLayout >::receive_raw(), pcl::InterfaceCommunicator< TLayout >::send_raw(), and ug::BinaryBuffer::write_pos().

Referenced by ug::CommunicateFromMasterToSlave(), ug::CommunicateFromSlaveToMaster(), and ug::ConsistencyCheck().

◆ ReceiveOnInterfaces()

template<typename TPIDs , typename TReceiveScheme >
void ug::ReceiveOnInterfaces ( pcl::InterfaceCommunicator< IndexLayout > &  communicator,
TPIDs &  pids,
IndexLayout layout,
TReceiveScheme &  receiver 
)

receives data over a interface based on a CommunicationScheme on a subgroup of processes

ReceiveOnInterfaces

Template Parameters
TReceiveSchemetype of the receiving CommunicationScheme
TPIDstype of the container of the pids
Parameters
communicatorInterfaceCommunicator used to send data
pidspids to receive from
layoutlayout to use to receive
receiverreceiving CommunicationScheme

References pcl::InterfaceCommunicator< TLayout >::communicate(), pcl::SingleLevelLayout< TInterface >::interface(), and pcl::InterfaceCommunicator< TLayout >::receive_raw().

◆ SendOnInterfaces()

template<typename TSendingScheme , typename TPIDs >
void ug::SendOnInterfaces ( pcl::InterfaceCommunicator< IndexLayout > &  communicator,
TPIDs &  pids,
IndexLayout layout,
TSendingScheme &  sender 
)

sends data over a interface based on a CommunicationScheme to a subgroup of processes

SendOnInterfaces

Template Parameters
TSendingSchemetype of the sending CommunicationScheme
TPIDstype of the container of the pids
Parameters
communicatorInterfaceCommunicator used to send data
pidspids to send to
layoutlayout to use to send
sendersending CommunicationScheme

References pcl::InterfaceCommunicator< TLayout >::communicate(), and pcl::InterfaceCommunicator< TLayout >::send_raw().