Measuring performance
From Carpet Workshop
Measuring Performance
Speed of a run:
Carpet::physical_time_per_hour
This can be output in the INFO line:
IOBasic::outInfo_vars = "Carpet::physical_time_per_hour"
and to disk:
IOASCII::out0D_every = 256 IOASCII::out0D_vars = "Carpet::timing"
Quick timer info:
TimerReport::out_every = 256 TimerReport::n_top_timers = 40
Gives:
INFO (TimerReport): Top timers at iteration 0 time 0 ====================================================================== % Time/s Timer (gettimeofday) ====================================================================== 100.0 237.022 CCTK total time 99.99 237.004 Initialise 69.13 163.875 CallFunction 65.93 156.277 CallFunction::thorns 47.41 112.373 Initialise::CallInitial 44.48 105.431 Initialise::CallAnalysis 42.42 100.546 Initialise::CallInitial::CCTK_INITIAL 42.12 99.8385 [0103] TwoPunctures: TwoPunctures in CCTK_INITIAL 42.12 99.8373 CallFunction/ADMBase_InitialData::TwoPunctures 28.31 67.1221 Initialise::CallAnalysis::OutputGH 16.15 38.2976 Initialise::CallAnalysis::CCTK_ANALYSIS 14.44 34.2264 CarpetIOHDF5<1>::OutputGH 12.29 29.1522 CarpetIOHDF5<2>::OutputGH 11.10 26.3225 [0162] IsolatedHorizon: ih_calculate in CCTK_ANALYSIS 11.10 26.3223 CallFunction/CCTK_ANALYSIS::ih_calculate 6.265 14.8503 Initialise::CallPostInitial 6.260 14.8391 Initialise::CallPostInitial::CCTK_POSTSTEP 4.864 11.5293 [0141] AHFinderDirect: AHFinderDirect_find_horizons in CCTK_POSTSTEP 4.864 11.5291 CallFunction/CCTK_POSTSTEP::AHFinderDirect_find_horizons 3.170 7.51414 CallFunction::syncs 2.833 6.71703 Evolve::Sync 2.539 6.01963 [0172] WorldTube: WorldTube_Decompose in CCTK_ANALYSIS 2.539 6.01953 CallFunction/CCTK_ANALYSIS::WorldTube_Decompose 2.284 5.41545 Initialise::CallInitial::CCTK_POSTINITIAL 1.800 4.26694 [0158] Multipole: Multipole_Calc in CCTK_ANALYSIS 1.799 4.26633 CallFunction/CCTK_ANALYSIS::Multipole_Calc 1.772 4.20062 [0122] CTGEvolution: CTGEvolution_SelectBoundaries in CCTK_POSTINITIAL 1.719 4.07661 Initialise::CallInitial::CCTK_BASEGRID 1.536 3.64177 CallFunction/BoundaryConditions::Interpolate2ApplyBC 1.498 3.55279 CarpetIOHDF5::OutputGH 1.149 2.72476 [0083] Interpolate2: Interpolate2TestSelectBCs in CCTK_BASEGRID 0.978 2.32036 [0138] Interpolate2: Interpolate2ApplyBC in CCTK_POSTSTEP 0.654 1.55208 Initialise::CallRegridInitialMeta 0.549 1.30270 Initialise::CallSetup 0.542 1.28686 Initialise::CallSetup::CCTK_WRAGH 0.362 0.85995 [0031] Formaline: Formaline_AnnounceInitial in CCTK_WRAGH 0.362 0.85988 CallFunction/CCTK_WRAGH::Formaline_AnnounceInitial 0.344 0.81572 Evolve::Prolongate 0.293 0.69474 [0127] Interpolate2: Interpolate2ApplyBC in CCTK_POSTINITIAL 0.264 0.62719 [0086] Interpolate2: Interpolate2ApplyBC in CCTK_BASEGRID
Detailed timer output:
TimerReport::output_all_timers_together = yes
Gives an output file containing min, max and average of all the timers. Needs to be parsed programmatically.
Currently working on making all this easier to use!