21 for (
auto p : products ) rank += p->getConsumers().size();
38 myfile.
open(
"InputExecutionPlan.graphml", std::ios::in );
45 boost::dynamic_properties dp;
46 dp.property(
"name",
get( &AlgoTraceProps::m_name, execPlan ) );
47 dp.property(
"index",
get( &AlgoTraceProps::m_index, execPlan ) );
48 dp.property(
"dataRank",
get( &AlgoTraceProps::m_rank, execPlan ) );
49 dp.property(
"runtime",
get( &AlgoTraceProps::m_runtime, execPlan ) );
51 boost::read_graphml( myfile, execPlan, dp );
53 typedef boost::graph_traits<precedence::PrecTrace>::vertex_iterator itV;
56 for ( vp = boost::vertices( execPlan ); vp.first != vp.second; ++vp.first ) {
58 auto index =
get( &AlgoTraceProps::m_name, execPlan );
59 if ( index[
v] == node.
name() ) {
74 typename boost::graph_traits<precedence::PrecTrace>::adjacency_iterator itVB;
75 typename boost::graph_traits<precedence::PrecTrace>::adjacency_iterator itVE;
77 for ( boost::tie( itVB, itVE ) = adjacent_vertices( vertex,
graph ); itVB != itVE; ++itVB ) {
87 myfile.
open(
"InputExecutionPlan.graphml", std::ios::in );
93 boost::dynamic_properties dp;
94 dp.property(
"name",
get( &AlgoTraceProps::m_name, execPlan ) );
95 dp.property(
"index",
get( &AlgoTraceProps::m_index, execPlan ) );
96 dp.property(
"dataRank",
get( &AlgoTraceProps::m_rank, execPlan ) );
97 dp.property(
"runtime",
get( &AlgoTraceProps::m_runtime, execPlan ) );
99 boost::read_graphml( myfile, execPlan, dp );
101 typedef boost::graph_traits<precedence::PrecTrace>::vertex_iterator itV;
104 for ( vp = boost::vertices( execPlan ); vp.first != vp.second; ++vp.first ) {
106 auto index =
get( &AlgoTraceProps::m_name, execPlan );
107 if ( index[
v] == node.
name() ) {
108 auto index_runtime =
get( &AlgoTraceProps::m_runtime, execPlan );
109 float rank = index_runtime[
v];
121 myfile.
open(
"Eccentricity.graphml", std::ios::in );
125 boost::dynamic_properties dp;
131 boost::read_graphml( myfile, execPlan, dp );
133 typedef boost::graph_traits<precedence::PrecTrace>::vertex_iterator itV;
136 for ( vp = boost::vertices( execPlan ); vp.first != vp.second; ++vp.first ) {
139 if ( index[
v] == node.
name() ) {
141 float rank = index_eccentricity[
v];
171 if ( products.empty() )
174 for (
auto p : products )
175 for (
auto algoNode : p->getConsumers() )
recursiveVisit( *algoNode );