The Gaudi Framework  master (594c33fa)
concurrency::RankerByCummulativeOutDegree Class Reference

#include </builds/gaudi/Gaudi/GaudiHive/src/PRGraph/Visitors/Rankers.h>

Inheritance diagram for concurrency::RankerByCummulativeOutDegree:
Collaboration diagram for concurrency::RankerByCummulativeOutDegree:

Public Member Functions

bool visit (AlgorithmNode &) override
 
void reset () override
 
void runThroughAdjacents (boost::graph_traits< precedence::PrecTrace >::vertex_descriptor, precedence::PrecTrace)
 
virtual bool visit (DecisionNode &)
 
virtual bool visit (AlgorithmNode &)
 
virtual bool visit (DataNode &)
 
virtual bool visit (ConditionNode &)
 
- Public Member Functions inherited from concurrency::IGraphVisitor
virtual ~IGraphVisitor ()=default
 
virtual bool visitEnter (DecisionNode &) const
 
virtual bool visit (DecisionNode &)
 
virtual bool visitEnter (AlgorithmNode &) const
 
virtual bool visitEnter (DataNode &) const
 
virtual bool visit (DataNode &)
 
virtual bool visitEnter (ConditionNode &) const
 
virtual bool visit (ConditionNode &)
 

Public Attributes

int m_nodesSucceeded { 0 }
 

Detailed Description

Definition at line 28 of file Rankers.h.

Member Function Documentation

◆ reset()

void concurrency::RankerByCummulativeOutDegree::reset ( )
inlineoverridevirtual

Reimplemented from concurrency::IGraphVisitor.

Definition at line 33 of file Rankers.h.

33 { m_nodesSucceeded = 0; };

◆ runThroughAdjacents()

void concurrency::RankerByCummulativeOutDegree::runThroughAdjacents ( boost::graph_traits< precedence::PrecTrace >::vertex_descriptor  vertex,
precedence::PrecTrace  graph 
)

Definition at line 72 of file Rankers.cpp.

73  {
74  typename boost::graph_traits<precedence::PrecTrace>::adjacency_iterator itVB;
75  typename boost::graph_traits<precedence::PrecTrace>::adjacency_iterator itVE;
76 
77  for ( boost::tie( itVB, itVE ) = adjacent_vertices( vertex, graph ); itVB != itVE; ++itVB ) {
78  m_nodesSucceeded += 1;
79  runThroughAdjacents( *itVB, graph );
80  }
81  }

◆ visit() [1/5]

virtual bool concurrency::IGraphVisitor::visit
inline

Definition at line 29 of file IGraphVisitor.h.

29 { return true; };

◆ visit() [2/5]

bool concurrency::RankerByCummulativeOutDegree::visit ( AlgorithmNode node)
overridevirtual

Reimplemented from concurrency::IGraphVisitor.

Definition at line 35 of file Rankers.cpp.

35  {
36 
37  std::ifstream myfile;
38  myfile.open( "InputExecutionPlan.graphml", std::ios::in );
39 
40  precedence::PrecTrace execPlan;
41 
42  using boost::get;
44 
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 ) );
50 
51  boost::read_graphml( myfile, execPlan, dp );
52 
53  typedef boost::graph_traits<precedence::PrecTrace>::vertex_iterator itV;
55 
56  for ( vp = boost::vertices( execPlan ); vp.first != vp.second; ++vp.first ) {
57  precedence::AlgoTraceVertex v = *vp.first;
58  auto index = get( &AlgoTraceProps::m_name, execPlan );
59  if ( index[v] == node.name() ) {
60  runThroughAdjacents( v, execPlan );
61  float rank = m_nodesSucceeded;
62  node.setRank( rank );
63  reset();
64  // std::cout << "Rank of " << index[v] << " is " << rank << std::endl;
65  }
66  }
67 
68  return true;
69  }

◆ visit() [3/5]

virtual bool concurrency::IGraphVisitor::visit
inline

Definition at line 35 of file IGraphVisitor.h.

35 { return true; };

◆ visit() [4/5]

virtual bool concurrency::IGraphVisitor::visit
inline

Definition at line 32 of file IGraphVisitor.h.

32 { return true; };

◆ visit() [5/5]

virtual bool concurrency::IGraphVisitor::visit
inline

Definition at line 26 of file IGraphVisitor.h.

26 { return true; };

Member Data Documentation

◆ m_nodesSucceeded

int concurrency::RankerByCummulativeOutDegree::m_nodesSucceeded { 0 }

Definition at line 37 of file Rankers.h.


The documentation for this class was generated from the following files:
std::pair
GaudiPartProp.decorators.get
get
decorate the vector of properties
Definition: decorators.py:283
precedence::PrecTrace
boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS, AlgoTraceProps > PrecTrace
Definition: PrecedenceRulesGraph.h:62
precedence::AlgoTraceVertex
boost::graph_traits< PrecTrace >::vertex_descriptor AlgoTraceVertex
Definition: PrecedenceRulesGraph.h:63
plotSpeedupsPyRoot.graph
graph
Definition: plotSpeedupsPyRoot.py:168
concurrency::RankerByCummulativeOutDegree::reset
void reset() override
Definition: Rankers.h:33
std::ifstream::open
T open(T... args)
precedence::AlgoTraceProps
Definition: PrecedenceRulesGraph.h:49
concurrency::RankerByCummulativeOutDegree::runThroughAdjacents
void runThroughAdjacents(boost::graph_traits< precedence::PrecTrace >::vertex_descriptor, precedence::PrecTrace)
Definition: Rankers.cpp:72
Properties.v
v
Definition: Properties.py:122
concurrency::RankerByCummulativeOutDegree::m_nodesSucceeded
int m_nodesSucceeded
Definition: Rankers.h:37
Gaudi::ParticleProperties::index
size_t index(const Gaudi::ParticleProperty *property, const Gaudi::Interfaces::IParticlePropertySvc *service)
helper utility for mapping of Gaudi::ParticleProperty object into non-negative integral sequential id...
Definition: IParticlePropertySvc.cpp:39
std::ifstream
STL class.