Nektar++
|
#include <Timer.h>
Public Types | |
using | Clock = std::chrono::steady_clock |
using | CounterType = Clock::time_point |
using | Seconds = std::chrono::duration< NekDouble > |
Public Member Functions | |
Timer ()=default | |
~Timer ()=default | |
Timer (const Timer &rhs)=delete | |
Timer & | operator= (const Timer &rhs)=delete |
void | Start () |
void | Stop () |
Seconds | Elapsed () |
void | AccumulateRegion (std::string, int iolevel=0) |
Accumulate elapsed time for a region. More... | |
NekDouble | TimePerTest (unsigned int n) |
Returns amount of seconds per iteration in a test with n iterations. More... | |
Static Public Member Functions | |
static void | PrintElapsedRegions () |
Print elapsed time and call count for each region with default serial communicator. More... | |
static void | PrintElapsedRegions (LibUtilities::CommSharedPtr comm, std::ostream &o=std::cout, int iolevel=1) |
Print elapsed time and call count for each region. More... | |
Private Attributes | |
CounterType | m_start |
CounterType | m_end |
Static Private Attributes | |
static std::map< std::string, std::tuple< Seconds, size_t, int > > | m_elapsedRegion {} |
static unsigned short | m_maxStringWidth = 10 |
using Nektar::LibUtilities::Timer::Clock = std::chrono::steady_clock |
using Nektar::LibUtilities::Timer::CounterType = Clock::time_point |
using Nektar::LibUtilities::Timer::Seconds = std::chrono::duration<NekDouble> |
|
default |
|
default |
|
delete |
void Nektar::LibUtilities::Timer::AccumulateRegion | ( | std::string | region, |
int | iolevel = 0 |
||
) |
Accumulate elapsed time for a region.
Definition at line 67 of file Timer.cpp.
References Elapsed(), m_elapsedRegion, and m_maxStringWidth.
Referenced by Nektar::SolverUtils::DiffusionIP::CalcTraceNumFlux(), Nektar::UnsteadyAdvection::DoOdeRhs(), Nektar::CompressibleFlowSystem::DoOdeRhs(), Nektar::MultiRegions::ExpList::IProductWRTDerivBase(), main(), Nektar::VelocityCorrectionScheme::SolveUnsteadyStokesSystem(), Nektar::SolverUtils::AdvectionWeakDG::v_Advect(), Nektar::NavierStokesAdvection::v_Advect(), Nektar::SolverUtils::AdvectionWeakDG::v_AdvectCoeffs(), Nektar::SolverUtils::AdvectionWeakDG::v_AdvectTraceFlux(), Nektar::MultiRegions::ExpList::v_BwdTrans_IterPerExp(), Nektar::SolverUtils::DiffusionIP::v_Diffuse(), Nektar::SolverUtils::DiffusionIP::v_DiffuseTraceFlux(), Nektar::SolverUtils::DiffusionIP::v_DiffuseVolumeFlux(), Nektar::VelocityCorrectionScheme::v_EvaluateAdvection_SetPressureBCs(), and Nektar::MultiRegions::ExpList::v_PhysDeriv().
Timer::Seconds Nektar::LibUtilities::Timer::Elapsed | ( | ) |
Definition at line 57 of file Timer.cpp.
References m_end, and m_start.
Referenced by AccumulateRegion(), and TimePerTest().
|
static |
Print elapsed time and call count for each region with default serial communicator.
Definition at line 87 of file Timer.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr().
|
static |
Print elapsed time and call count for each region.
Definition at line 98 of file Timer.cpp.
References m_elapsedRegion, m_maxStringWidth, Nektar::LibUtilities::ReduceMax, Nektar::LibUtilities::ReduceMin, and Nektar::LibUtilities::ReduceSum.
void Nektar::LibUtilities::Timer::Start | ( | ) |
Definition at line 47 of file Timer.cpp.
References m_start.
Referenced by Nektar::SolverUtils::DiffusionIP::CalcTraceNumFlux(), Nektar::SolverUtils::DriverSteadyState::ConvergenceHistory(), Nektar::FieldUtils::Field::CreateExp(), Nektar::UnsteadyAdvection::DoOdeRhs(), Nektar::CompressibleFlowSystem::DoOdeRhs(), Nektar::SolverUtils::CouplingCwipi::DumpRawFields(), Nektar::LibUtilities::Interpreter::ExpressionEvaluator::Evaluate(), Nektar::LibUtilities::Interpreter::ExpressionEvaluator::EvaluateAtPoint(), Nektar::SolverUtils::CouplingCwipi::ExtrapolateFields(), Nektar::MultiRegions::ExpList::IProductWRTDerivBase(), main(), Nektar::SpatialDomains::MeshGraphHDF5::PartitionMesh(), Nektar::FieldUtils::InputXml::Process(), Nektar::FieldUtils::ProcessCreateExp::Process(), Nektar::FieldUtils::ProcessIsoContour::Process(), Nektar::SolverUtils::CouplingCwipi::ReceiveCwipi(), Nektar::SolverUtils::CouplingCwipi::ReceiveStart(), RunModule(), Nektar::SolverUtils::CouplingCwipi::SendComplete(), Nektar::CoupledLinearNS::SetUpCoupledMatrix(), Nektar::Collections::CollectionOptimisation::SetWithTimings(), Nektar::CoupledLinearNS::SolveSteadyNavierStokes(), Nektar::VelocityCorrectionScheme::SolveUnsteadyStokesSystem(), Nektar::MultiRegions::AssemblyCommDG::Timing(), Nektar::SolverUtils::AdvectionWeakDG::v_Advect(), Nektar::NavierStokesAdvection::v_Advect(), Nektar::SolverUtils::AdvectionWeakDG::v_AdvectCoeffs(), Nektar::SolverUtils::AdvectionWeakDG::v_AdvectTraceFlux(), Nektar::SolverUtils::DiffusionIP::v_Diffuse(), Nektar::SolverUtils::DiffusionIP::v_DiffuseTraceFlux(), Nektar::SolverUtils::DiffusionIP::v_DiffuseVolumeFlux(), Nektar::SolverUtils::UnsteadySystem::v_DoSolve(), Nektar::MMFAdvection::v_DoSolve(), Nektar::MMFMaxwell::v_DoSolve(), Nektar::PulseWaveSystem::v_DoSolve(), Nektar::MMFSWE::v_DoSolve(), Nektar::CoupledLinearNS::v_DoSolve(), Nektar::VelocityCorrectionScheme::v_EvaluateAdvection_SetPressureBCs(), Nektar::SolverUtils::DriverSteadyState::v_Execute(), Nektar::MultiRegions::ExpList::v_PhysDeriv(), Nektar::Dummy::v_PostIntegrate(), and Nektar::SolverUtils::CouplingCwipi::v_Send().
void Nektar::LibUtilities::Timer::Stop | ( | ) |
Definition at line 52 of file Timer.cpp.
References m_end.
Referenced by Nektar::SolverUtils::DiffusionIP::CalcTraceNumFlux(), Nektar::SolverUtils::DriverSteadyState::ConvergenceHistory(), Nektar::FieldUtils::Field::CreateExp(), Nektar::UnsteadyAdvection::DoOdeRhs(), Nektar::CompressibleFlowSystem::DoOdeRhs(), Nektar::SolverUtils::CouplingCwipi::DumpRawFields(), Nektar::LibUtilities::Interpreter::ExpressionEvaluator::Evaluate(), Nektar::LibUtilities::Interpreter::ExpressionEvaluator::EvaluateAtPoint(), Nektar::SolverUtils::CouplingCwipi::ExtrapolateFields(), Nektar::MultiRegions::ExpList::IProductWRTDerivBase(), main(), Nektar::SpatialDomains::MeshGraphHDF5::PartitionMesh(), Nektar::FieldUtils::InputXml::Process(), Nektar::FieldUtils::ProcessCreateExp::Process(), Nektar::FieldUtils::ProcessIsoContour::Process(), Nektar::SolverUtils::CouplingCwipi::ReceiveCwipi(), Nektar::SolverUtils::CouplingCwipi::ReceiveStart(), RunModule(), Nektar::SolverUtils::CouplingCwipi::SendComplete(), Nektar::CoupledLinearNS::SetUpCoupledMatrix(), Nektar::Collections::CollectionOptimisation::SetWithTimings(), Nektar::CoupledLinearNS::SolveSteadyNavierStokes(), Nektar::VelocityCorrectionScheme::SolveUnsteadyStokesSystem(), Nektar::MultiRegions::AssemblyCommDG::Timing(), Nektar::SolverUtils::AdvectionWeakDG::v_Advect(), Nektar::NavierStokesAdvection::v_Advect(), Nektar::SolverUtils::AdvectionWeakDG::v_AdvectCoeffs(), Nektar::SolverUtils::AdvectionWeakDG::v_AdvectTraceFlux(), Nektar::MultiRegions::ExpList::v_BwdTrans_IterPerExp(), Nektar::SolverUtils::DiffusionIP::v_Diffuse(), Nektar::SolverUtils::DiffusionIP::v_DiffuseTraceFlux(), Nektar::SolverUtils::DiffusionIP::v_DiffuseVolumeFlux(), Nektar::SolverUtils::UnsteadySystem::v_DoSolve(), Nektar::MMFAdvection::v_DoSolve(), Nektar::MMFMaxwell::v_DoSolve(), Nektar::PulseWaveSystem::v_DoSolve(), Nektar::MMFSWE::v_DoSolve(), Nektar::CoupledLinearNS::v_DoSolve(), Nektar::VelocityCorrectionScheme::v_EvaluateAdvection_SetPressureBCs(), Nektar::MultiRegions::ExpList::v_PhysDeriv(), Nektar::Dummy::v_PostIntegrate(), and Nektar::SolverUtils::CouplingCwipi::v_Send().
NekDouble Nektar::LibUtilities::Timer::TimePerTest | ( | unsigned int | n | ) |
Returns amount of seconds per iteration in a test with n iterations.
Definition at line 62 of file Timer.cpp.
References Elapsed().
Referenced by Nektar::SolverUtils::DriverSteadyState::ConvergenceHistory(), Nektar::FieldUtils::Field::CreateExp(), Nektar::SolverUtils::CouplingCwipi::DumpRawFields(), Nektar::LibUtilities::Interpreter::ExpressionEvaluator::Evaluate(), Nektar::LibUtilities::Interpreter::ExpressionEvaluator::EvaluateAtPoint(), Nektar::SolverUtils::CouplingCwipi::ExtrapolateFields(), main(), Nektar::FieldUtils::InputXml::Process(), Nektar::FieldUtils::ProcessCreateExp::Process(), Nektar::FieldUtils::ProcessIsoContour::Process(), Nektar::SolverUtils::CouplingCwipi::ReceiveCwipi(), Nektar::SolverUtils::CouplingCwipi::ReceiveStart(), RunModule(), Nektar::SolverUtils::CouplingCwipi::SendComplete(), Nektar::CoupledLinearNS::SetUpCoupledMatrix(), Nektar::Collections::CollectionOptimisation::SetWithTimings(), Nektar::CoupledLinearNS::SolveSteadyNavierStokes(), Nektar::MultiRegions::AssemblyCommDG::Timing(), Nektar::SolverUtils::UnsteadySystem::v_DoSolve(), Nektar::MMFAdvection::v_DoSolve(), Nektar::MMFMaxwell::v_DoSolve(), Nektar::PulseWaveSystem::v_DoSolve(), Nektar::MMFSWE::v_DoSolve(), Nektar::CoupledLinearNS::v_DoSolve(), Nektar::Dummy::v_PostIntegrate(), and Nektar::SolverUtils::CouplingCwipi::v_Send().
|
staticprivate |
Definition at line 90 of file Timer.h.
Referenced by AccumulateRegion(), and PrintElapsedRegions().
|
private |
|
staticprivate |
Definition at line 91 of file Timer.h.
Referenced by AccumulateRegion(), and PrintElapsedRegions().
|
private |