11 for (
auto p : products ) rank += p->getConsumers().size();
28 myfile.
open(
"InputExecutionPlan.graphml", std::ios::in );
35 boost::dynamic_properties dp;
36 dp.property(
"name",
get( &AlgoTraceProps::m_name, execPlan ) );
37 dp.property(
"index",
get( &AlgoTraceProps::m_index, execPlan ) );
38 dp.property(
"dataRank",
get( &AlgoTraceProps::m_rank, execPlan ) );
39 dp.property(
"runtime",
get( &AlgoTraceProps::m_runtime, execPlan ) );
41 boost::read_graphml( myfile, execPlan, dp );
43 typedef boost::graph_traits<precedence::PrecTrace>::vertex_iterator itV;
46 for ( vp = boost::vertices( execPlan ); vp.first != vp.second; ++vp.first ) {
48 auto index =
get( &AlgoTraceProps::m_name, execPlan );
64 typename boost::graph_traits<precedence::PrecTrace>::adjacency_iterator itVB;
65 typename boost::graph_traits<precedence::PrecTrace>::adjacency_iterator itVE;
67 for ( boost::tie( itVB, itVE ) = adjacent_vertices( vertex,
graph ); itVB != itVE; ++itVB ) {
77 myfile.
open(
"InputExecutionPlan.graphml", std::ios::in );
83 boost::dynamic_properties dp;
84 dp.property(
"name",
get( &AlgoTraceProps::m_name, execPlan ) );
85 dp.property(
"index",
get( &AlgoTraceProps::m_index, execPlan ) );
86 dp.property(
"dataRank",
get( &AlgoTraceProps::m_rank, execPlan ) );
87 dp.property(
"runtime",
get( &AlgoTraceProps::m_runtime, execPlan ) );
89 boost::read_graphml( myfile, execPlan, dp );
91 typedef boost::graph_traits<precedence::PrecTrace>::vertex_iterator itV;
94 for ( vp = boost::vertices( execPlan ); vp.first != vp.second; ++vp.first ) {
96 auto index =
get( &AlgoTraceProps::m_name, execPlan );
98 auto index_runtime =
get( &AlgoTraceProps::m_runtime, execPlan );
99 float rank = index_runtime[v];
111 myfile.
open(
"Eccentricity.graphml", std::ios::in );
115 boost::dynamic_properties dp;
121 boost::read_graphml( myfile, execPlan, dp );
123 typedef boost::graph_traits<precedence::PrecTrace>::vertex_iterator itV;
126 for ( vp = boost::vertices( execPlan ); vp.first != vp.second; ++vp.first ) {
131 float rank = index_eccentricity[v];
161 if ( products.empty() )
164 for (
auto p : products )
165 for (
auto algoNode : p->getConsumers() )
recursiveVisit( *algoNode );
const std::string & getNodeName() const
Get node name.
boost::graph_traits< PrecTrace >::vertex_descriptor AlgoTraceVertex
void setRank(float &rank)
Set Algorithm rank.
bool visit(AlgorithmNode &) override
void recursiveVisit(AlgorithmNode &)
Depth-first node parser to calculate node eccentricity (only within the data realm of the precedence ...
auto get(const Handle &handle, const Algo &, const EventContext &) -> decltype(details::deref(handle.get()))
bool visit(AlgorithmNode &) override
bool visit(AlgorithmNode &) override
void runThroughAdjacents(boost::graph_traits< precedence::PrecTrace >::vertex_descriptor, precedence::PrecTrace)
boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS, AlgoTraceProps > PrecTrace
const std::vector< DataNode * > & getOutputDataNodes() const
Get all supplier nodes.
bool visit(AlgorithmNode &) override
bool visit(AlgorithmNode &) override