37 #include <boost/algorithm/string.hpp>
44 namespace LibUtilities
59 return std::chrono::duration_cast<Seconds>(
m_end -
m_start);
74 std::make_tuple<Timer::Seconds, size_t>(this->
Elapsed(),1, iolevel)});
82 std::get<0>(search->second) += this->
Elapsed();
83 std::get<1>(search->second) += 1;
89 std::string def(
"default");
90 char *argv =
new char [def.length()+1];
91 std::strcpy(argv,def.c_str());
102 std::vector<std::string> labels{
104 "Elapsed time Avg (s)",
110 if (comm->GetRank() == 0 &&
113 o <<
"-------------------------------------------\n";
115 << std::setw(10) << labels[1] <<
'\t'
116 << std::setw(10) << labels[2] <<
'\t'
117 << std::setw(10) << labels[3] <<
'\t'
118 << std::setw(10) << labels[4] <<
'\n';
124 auto elapsedAve = std::get<0>(item->second).count();
126 elapsedAve /= comm->GetSize();
127 auto elapsedMin = std::get<0>(item->second).count();
129 auto elapsedMax = std::get<0>(item->second).count();
132 if (comm->GetRank() == 0)
135 << std::setw(10) << elapsedAve <<
'\t'
136 << std::setw(10) << elapsedMin <<
'\t'
137 << std::setw(10) << elapsedMax <<
'\t'
138 << std::setw(10) << std::get<1>(item->second) <<
'\n';
146 if(std::get<2>(item->second) < iolevel)
148 if(boost::iequals(item->first,
"Execute"))
153 auto elapsedAve = std::get<0>(item->second).count();
155 elapsedAve /= comm->GetSize();
156 auto elapsedMin = std::get<0>(item->second).count();
158 auto elapsedMax = std::get<0>(item->second).count();
161 if (comm->GetRank() == 0)
164 << std::setw(10) << elapsedAve <<
'\t'
165 << std::setw(10) << elapsedMin <<
'\t'
166 << std::setw(10) << elapsedMax <<
'\t'
167 << std::setw(10) << std::get<1>(item->second) <<
'\n';
173 std::map<std::string, std::tuple<Timer::Seconds, size_t, int>>
static void PrintElapsedRegions()
Print elapsed time and call count for each region with default serial communicator.
static unsigned short m_maxStringWidth
NekDouble TimePerTest(unsigned int n)
Returns amount of seconds per iteration in a test with n iterations.
void AccumulateRegion(std::string, int iolevel=0)
Accumulate elapsed time for a region.
static std::map< std::string, std::tuple< Seconds, size_t, int > > m_elapsedRegion
std::chrono::duration< NekDouble > Seconds
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
std::shared_ptr< Comm > CommSharedPtr
Pointer to a Communicator object.
The above copyright notice and this permission notice shall be included.