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 of Graph, because of the lack of empty/copy constructors.
Access to parent nodes requires some computation (traversing the tree) - avoid this if possible.