diff --git a/apps/benchmarks/UniformGridCPU/UniformGridCPU.cpp b/apps/benchmarks/UniformGridCPU/UniformGridCPU.cpp index a7eb9ecf4fbe63f4a284be147ac0e09e777830d3..bc933c6ad2a449c961a8befaf4988bd8709c03df 100644 --- a/apps/benchmarks/UniformGridCPU/UniformGridCPU.cpp +++ b/apps/benchmarks/UniformGridCPU/UniformGridCPU.cpp @@ -213,7 +213,6 @@ int main(int argc, char** argv) WcTimingPool timeloopTiming; WcTimer simTimer; - WALBERLA_MPI_WORLD_BARRIER() WALBERLA_LOG_INFO_ON_ROOT("Starting simulation with " << timesteps << " time steps") @@ -250,6 +249,33 @@ int main(int argc, char** argv) pythonCallbackResults.data().exposeValue("nontemporal", nontemporal); pythonCallbackResults.data().exposeValue("cse_global", infoCseGlobal); pythonCallbackResults.data().exposeValue("cse_pdfs", infoCsePdfs); + + auto exposeTimers = [&pythonCallbackResults](const std::shared_ptr<WcTimingPool>& tp){ + std::string parseColumnName(const std::string& columnName) { + std::string parsedName = columnName; + std::replace(parsedName.begin(), parsedName.end(), ' ', '-'); + return parsedName; + } + auto& data = pythonCallbackResults.data(); + for (auto i = tp->begin(); i != tp->end(); ++i) + { + const std::string timerName = "Timer_" + i->first; + const std::string coulumnName; + coulumnName = timerName + "_Total"; + data.exposeValue(parseColumnName(coulumnName).c_str(), i->second.total()); + coulumnName = timerName + "_Average"; + data.exposeValue(parseColumnName(coulumnName).c_str(), i->second.average()); + coulumnName = timerName + "_Count"; + data.exposeValue(parseColumnName(coulumnName).c_str(), i->second.getCounter()); + coulumnName = timerName + "_Min"; + data.exposeValue(parseColumnName(coulumnName).c_str(), i->second.min()); + coulumnName = timerName + "_Max"; + data.exposeValue(parseColumnName(coulumnName).c_str(), i->second.max()); + coulumnName = timerName + "_Variance"; + data.exposeValue(parseColumnName(coulumnName).c_str(), i->second.variance()); + } + }; + exposeTimers(reducedTimeloopTiming); // Call Python function to report results pythonCallbackResults(); }