The Communication And Graph Environment enables to communicate on basis of a graph with methods of a user defined communication library.
More...
|
|
using | CommunicationPolicy = T_CommunicationPolicy |
| |
|
using | GraphPolicy = T_GraphPolicy |
| |
|
using | Cage_t = Cage< CommunicationPolicy, GraphPolicy > |
| |
|
using | VAddr = graybat::communicationPolicy::VAddr< CommunicationPolicy > |
| |
|
using | Context = graybat::communicationPolicy::Context< CommunicationPolicy > |
| |
|
using | Event = graybat::communicationPolicy::Event< CommunicationPolicy > |
| |
|
using | CPConfig = graybat::communicationPolicy::Config< CommunicationPolicy > |
| |
|
using | Edge = graybat::CommunicationEdge< Cage_t > |
| |
|
using | Vertex = graybat::CommunicationVertex< Cage_t > |
| |
|
using | EdgeDescription = graybat::graphPolicy::EdgeDescription< GraphPolicy > |
| |
|
using | GraphDescription = graybat::graphPolicy::GraphDescription< GraphPolicy > |
| |
|
using | VertexID = graybat::graphPolicy::VertexID |
| |
|
using | EdgeID = graybat::graphPolicy::EdgeID |
| |
|
using | GraphID = graybat::graphPolicy::GraphID |
| |
|
using | Peer = size_t |
| |
|
|
template<class T_Functor > |
| | Cage (CPConfig const cpConfig, T_Functor graphFunctor) |
| |
|
| Cage (CPConfig const cpConfig) |
| |
|
|
template<class T_Functor > |
| void | setGraph (T_Functor graphFunctor) |
| |
|
std::vector< Vertex > | getVertices () |
| |
|
Vertex | getVertex (const VertexID vertexID) |
| |
|
Edge | getEdge (const Vertex source, const Vertex target) |
| |
|
std::vector< Vertex > | getAdjacentVertices (const Vertex &v) |
| |
|
std::vector< Edge > | getOutEdges (const Vertex &v) |
| |
|
std::vector< Edge > | getInEdges (const Vertex v) |
| |
|
| template<class T_Functor > |
| void | distribute (T_Functor distFunctor) |
| | Distribution of the graph vertices to the peers of the global context. The distFunctor it the function responsible for this distribution. More...
|
| |
| void | announce (const std::vector< Vertex > vertices, const bool global=true) |
| | Announces vertices of a graph to the network, so that other peers know that these vertices are hosted by this peer. More...
|
| |
| VAddr | locateVertex (Vertex vertex) |
| | Returns the VAddr of the host of vertex in the graph. More...
|
| |
|
std::vector< Vertex > | getHostedVertices (const VAddr vAddr) |
| | Opposite operation of locateVertex(). It returns the vertices that are hosted by the peer with vAddr
|
| |
|
bool | peerHostsVertex (Vertex vertex) |
| | Returns true if the vertex is hosted by the calling peer otherwise false.
|
| |
|
std::vector< Peer > | getPeers () |
| |
|
| template<typename T > |
| void | send (const Edge edge, const T &data) |
| | Synchron transmission of data to the destVertex on edge. More...
|
| |
| template<typename T > |
| void | send (const Edge edge, const T &data, std::vector< Event > &events) |
| | Asynchron transmission of data to the destVertex on edge. More...
|
| |
| template<typename T > |
| void | recv (const Edge edge, T &data) |
| | Synchron receive of data from the srcVertex on edge. More...
|
| |
|
template<typename T > |
| Edge | recv (T &data) |
| |
| template<typename T > |
| void | recv (const Edge edge, T &data, std::vector< Event > &events) |
| | Asynchron receive of data from the srcVertex on edge. More...
|
| |
|
|
template<typename T_Data , typename Op > |
| void | reduce (const Vertex rootVertex, const Vertex srcVertex, Op op, const std::vector< T_Data > sendData, std::vector< T_Data > &recvData) |
| |
|
template<typename T_Data , typename T_Recv , typename Op > |
| void | allReduce (const Vertex srcVertex, Op op, const std::vector< T_Data > sendData, T_Recv &recvData) |
| |
|
template<typename T_Send , typename T_Recv > |
| void | gather (const Vertex rootVertex, const Vertex srcVertex, const T_Send sendData, T_Recv &recvData, const bool reorder) |
| |
| template<typename T_Send , typename T_Recv > |
| void | allGather (const Vertex srcVertex, T_Send sendData, T_Recv &recvData, const bool reorder) |
| |
| template<typename T > |
| void | spread (const Vertex vertex, const T &data, std::vector< Event > &events) |
| | Spread data from a vertex to all adjacent vertices connected by an outgoing edge (async). More...
|
| |
| template<typename T > |
| void | spread (const Vertex vertex, const T &data) |
| | Spread data from a vertex to all adjacent vertices connected by an outgoing edge (sync). More...
|
| |
| template<typename T > |
| void | collect (const Vertex vertex, T &data) |
| | Collects data from all incoming edges under the assumption that all vertices send the same number of data. More...
|
| |
|
void | synchronize () |
| |
|
int | ContextID () |
| |
template<typename T_CommunicationPolicy, typename T_GraphPolicy>
class graybat::Cage< T_CommunicationPolicy, T_GraphPolicy >
The Communication And Graph Environment enables to communicate on basis of a graph with methods of a user defined communication library.
A cage is defined by its Communication and Graph policy. The communication policy provides methods for point to point and collective operations. The graph policy provides methods to query graph imformation of the cage graph.
- Examples:
- anyrecv.cpp, chain.cpp, forward.cpp, gol.cpp, and ring.cpp.