MPIBlib: MPI Benchmark library
MPIB::comm_tree Namespace Reference
Typedefs | |
typedef adjacency_list< listS, listS, directedS, property < vertex_index_t, int > , no_property, no_property, listS > | Graph |
typedef graph_traits< Graph > ::vertex_descriptor | Vertex |
typedef graph_traits< Graph > ::edge_descriptor | Edge |
typedef graph_traits< Graph > ::vertex_iterator | Vertex_iterator |
typedef graph_traits< Graph > ::adjacency_iterator | Adjacency_iterator |
typedef graph_as_tree< Graph, iterator_property_map< vector < Vertex >::iterator, property_map< Graph, vertex_index_t >::type > > | Tree |
Detailed Description
Communication tree is a C++ namespace that contains a set of data structures for tree-based algorithms of collectives. All data types are short aliases for the Boost Graph data structures.
Typedef Documentation
typedef adjacency_list<listS, listS, directedS, property<vertex_index_t, int>, no_property, no_property, listS> MPIB::comm_tree::Graph |
Directed graph (vertex_index = MPI rank)
- Note:
- The vertex index property is used for indexing and must starts from zero.
- The adjacent_vertices method provides only the parent->child relation. For backward connection, use the graph as tree wrapper Tree.
typedef graph_traits<Graph>::vertex_descriptor MPIB::comm_tree::Vertex |
Vertex
typedef graph_traits<Graph>::edge_descriptor MPIB::comm_tree::Edge |
Edge
typedef graph_traits<Graph>::vertex_iterator MPIB::comm_tree::Vertex_iterator |
Vertex iterator
typedef graph_traits<Graph>::adjacency_iterator MPIB::comm_tree::Adjacency_iterator |
Adjacency iterator
typedef graph_as_tree<Graph, iterator_property_map<vector<Vertex>::iterator, property_map<Graph, vertex_index_t>::type> > MPIB::comm_tree::Tree |
Graph as tree wrapper. Provides access to the root, parent and children nodes.
- Note:
- We cannot use the
Tree
data structure directly, instead ofGraph
, because of the lack of empty/copy constructors. - Access to parent nodes requires some computation (traversing the tree) - avoid this if possible.