1 #ifndef PMPL_METRIC_UTILS_H_
2 #define PMPL_METRIC_UTILS_H_
8 #include <containers/sequential/graph/algorithms/connected_components.h>
38 const std::string& _callName);
54 void PrintClock(
const std::string& _name, std::ostream& _os);
59 double GetStat(
const std::string& _s);
60 void SetStat(
const std::string& _s,
const double _v);
61 void IncStat(
const std::string& _s,
const double _v = 1);
67 std::vector<double>&
GetHistory(
const std::string& _s);
75 template <
typename RoadmapType>
76 void PrintAllStats(std::ostream& _os, RoadmapType* _rmap =
nullptr);
78 template<
class GraphType>
87 std::map<std::string, std::tuple<size_t, size_t, size_t> >
m_lpInfo;
109 std::map<std::string, size_t> m_numCollDetCalls;
110 std::map<std::string, double> m_stats;
111 std::map<std::string, Average<double>> m_averages;
112 std::map<std::string, std::vector<double>> m_histories;
113 std::string m_auxFileDest;
130 const std::string m_label;
152 template <
typename RoadmapType>
158 _os <<
"Roadmap Statistics:\n"
159 <<
"\n Number of Nodes: " << _rmap->get_num_vertices()
160 <<
"\n Number of Edges: " << _rmap->get_num_edges()
169 template <
class GraphType>
175 typedef typename GraphType::vertex_descriptor VID;
177 stapl::sequential::vector_property_map<GraphType, size_t> cMap;
178 std::vector<std::pair<size_t, VID>> ccs;
180 stapl::sequential::get_cc_stats(_g, cMap, ccs);
183 _os <<
"\n There are " << ccs.size() <<
" connected components:";
185 _os <<
"\n CC[" << ccnum++ <<
"]: " << cc.first
186 <<
" (vid " << cc.second <<
")";
190 _os <<
"WARNING: CCs not computed, called sequential implementation of CC stats \n" ;
Definition: MetricUtils.h:124
MethodTimer(StatClass *const _stats, const std::string &_label)
Definition: MetricUtils.cpp:332
~MethodTimer()
Destruction stops the named clock.
Definition: MetricUtils.cpp:339
Definition: MetricUtils.h:29
void DisplayCCStats(std::ostream &_os, GraphType &)
Definition: MetricUtils.h:172
double GetStat(const std::string &_s)
Definition: MetricUtils.cpp:162
std::map< std::string, ClockClass > m_clockMap
Definition: MetricUtils.h:90
int IncNumCollDetCalls(const std::string &_cdName, const std::string &_callName)
Definition: MetricUtils.cpp:28
StatClass()
Definition: MetricUtils.cpp:9
void WriteHistory(const std::string &_s)
Definition: MetricUtils.cpp:204
std::map< std::string, size_t > m_isCollByName
Definition: MetricUtils.h:94
void IncNodesGenerated(const std::string &_samplerName, size_t _incr=1)
Definition: MetricUtils.cpp:76
void StopClock(const std::string &_name)
Definition: MetricUtils.cpp:102
std::vector< double > & GetHistory(const std::string &_s)
Definition: MetricUtils.cpp:190
void SetStat(const std::string &_s, const double _v)
Definition: MetricUtils.cpp:169
void StopPrintClock(const std::string &_name, std::ostream &_os)
Definition: MetricUtils.cpp:112
void IncStat(const std::string &_s, const double _v=1)
Definition: MetricUtils.cpp:176
void PrintAllStats(std::ostream &_os)
Definition: MetricUtils.cpp:220
Average< double > & GetAverage(const std::string &_s)
Definition: MetricUtils.cpp:183
int IncLPAttempts(const std::string &_lpName, int _incr=1)
Definition: MetricUtils.cpp:62
std::map< std::string, size_t > m_collDetCountByName
Definition: MetricUtils.h:88
void SetAuxDest(const std::string &_s)
Definition: MetricUtils.cpp:213
double GetSeconds(const std::string &_name)
Definition: MetricUtils.cpp:142
size_t m_isCollTotal
Definition: MetricUtils.h:95
int IncLPConnections(const std::string &_lpName, int _incr=1)
Definition: MetricUtils.cpp:55
size_t GetIsCollTotal()
Definition: MetricUtils.cpp:40
int IncLPCollDetCalls(const std::string &_lpName, int _incr=1)
Definition: MetricUtils.cpp:69
void PrintClock(const std::string &_name, std::ostream &_os)
Definition: MetricUtils.cpp:122
void ClearClock(const std::string &_name)
Definition: MetricUtils.cpp:132
void AddToHistory(const std::string &_s, double _v)
Definition: MetricUtils.cpp:197
void IncCfgIsColl(const std::string &_callName)
Definition: MetricUtils.cpp:47
void IncNodesAttempted(const std::string &_samplerName, size_t _incr=1)
Definition: MetricUtils.cpp:83
void StartClock(const std::string &_name)
Definition: MetricUtils.cpp:90
void ClearStats()
Definition: MetricUtils.cpp:16
std::map< std::string, std::pair< size_t, size_t > > m_samplerInfo
Definition: MetricUtils.h:102
std::map< std::string, std::tuple< size_t, size_t, size_t > > m_lpInfo
Definition: MetricUtils.h:87
int GetUSeconds(const std::string &_name)
Definition: MetricUtils.cpp:152