Skip to content

ReportFiles

Sebastian Schmieschek edited this page Aug 12, 2015 · 2 revisions

Reporting files generated by HemeLB

HemeLB generates two report files in its result folder, one machine readable, called report.xml, and one human readable, called report.txt

These are generated from CTemplate templates: in source:Code/resources/report.xml.ctp and source:Code/resources/report.txt.ctp

Timers

Much of the information in the report is a series of timers.

I note here the code sections timed by each timer, as at version 0.2.0.

||=Timer enum in code=||=Timer string label in report=||=Timer short label in Tools/analysis=||=Brief description of timed Code=||=Starts at=||=Stops at=|| ||total||Total||total||Whole program||source:Code/SimulationMaster.cc:0.2.0#L33||source:Code/SimulationMaster.cc:0.2.0#L513|| ||initialDecomposition||Seed Decomposition||seed_decomposition||Initial seed decomposition||source:Code/geometry/GeometryReader.cc:0.2.0#L129||source:Code/geometry/GeometryReader.cc:0.2.0#L146|| ||domainDecomposition||Domain Decomposition||domain_decomposition||Parmetis preparation, call, re-read, and move||source:Code/geometry/GeometryReader.cc:0.2.0#L174||source:Code/geometry/GeometryReader.cc:0.2.0#L193|| ||fileRead||File Read||file_read||Read of geometry preamble and header, seed decomposition, communication of needs, and first read and parse of blocks||source:Code/geometry/GeometryReader.cc:0.2.0#L77||source:Code/geometry/GeometryReader.cc:0.2.0#L171|| ||reRead||Re Read||re_read||Second read and parse of blocks||source:Code/geometry/GeometryReader.cc:0.2.0#L1104||source:Code/geometry/GeometryReader.cc:0.2.0#L1107|| ||unzip||Unzip||unzip||Un-zipping of blocks||source:Code/geometry/GeometryReader.cc:0.2.0#L469||source:Code/geometry/GeometryReader.cc:0.2.0#L507|| ||moves||Moves||moves||Post-parmetis move of site data||source:Code/geometry/GeometryReader.cc:0.2.0#L1109||source:Code/geometry/GeometryReader.cc:0.2.0#L1112|| ||parmetis||Parmetis||parmetis||Call to parmetis||source:Code/geometry/GeometryReader.cc:0.2.0#L1085||source:Code/geometry/GeometryReader.cc:0.2.0#L1087|| ||netInitialise||Net initialisation||N/A||Read, decompose and parse geometry, set up lattice data||source:Code/SimulationMaster.cc:0.2.0#L133||source:Code/SimulationMaster.cc:0.2.0#L138|| ||lb||Lattice Boltzmann||lb||Lattice boltzmann timings and communication||source:Code/lb/lb.hpp:0.2.0#L140 , source:Code/lb/lb.hpp:0.2.0#L150, source:Code/lb/lb.hpp:0.2.0#L179, source:Code/lb/lb.hpp:0.2.0#L206, source:Code/lb/lb.hpp:0.2.0#L257||source:Code/lb/lb.hpp:0.2.0#L144, source:Code/lb/lb.hpp:0.2.0#L173, source:Code/lb/lb.hpp:0.2.0#L200, source:Code/lb/lb.hpp:0.2.0#L251, source:Code/lb/lb.hpp:0.2.0#L262|| ||visualisation||Visualisation||visualisation||Render and communication of images||source:Code/vis/Control.cc:0.2.0#L192, source:Code/vis/Control.cc:0.2.0#L267, source:Code/vis/Control.cc:0.2.0#L309, source:Code/vis/Control.cc:0.2.0#L330, source:Code/vis/Control.cc:0.2.0#L385, source:Code/vis/Control.cc:0.2.0#L478, source:Code/vis/Control.cc:0.2.0#L622||source:Code/vis/Control.cc:0.2.0#L198, source:Code/vis/Control.cc:0.2.0#L304, source:Code/vis/Control.cc:0.2.0#L325, source:Code/vis/Control.cc:0.2.0#L364, source:Code/vis/Control.cc:0.2.0#L448, source:Code/vis/Control.cc:0.2.0#L586, source:Code/vis/Control.cc:0.2.0#L624|| ||monitoring||Monitoring||monitoring||Incompressibility checker and stability tester||source:Code/lb/IncompressibilityChecker.hpp:0.2.0#L138, source:Code/lb/IncompressibilityChecker.hpp:0.2.0#L171, source:Code/lb/StabilityTester.h:0.2.0#L75, source:Code/lb/StabilityTester.h:0.2.0#L115 || source:Code/lb/IncompressibilityChecker.hpp:0.2.0#L147, source:Code/lb/IncompressibilityChecker.hpp:0.2.0#L186, source:Code/lb/StabilityTester.h:0.2.0#L95, source:Code/lb/StabilityTester.h:0.2.0#L130 || ||mpiSend||MPI Send||send|| MPI send time for all components using the shared "net" system || source:Code/SimulationMaster.cc:0.2.0#L254 || source:Code/SimulationMaster.cc:0.2.0#L256 || ||mpiWait||MPI Wait||wait|| MPI wait time for all components using the shared "net" system || source:Code/SimulationMaster.cc:0.2.0#L263 || source:Code/SimulationMaster.cc:0.2.0#L265 || ||snapshot||Snapshots||snapshots || record flow field || source:Code/SimulationMaster.cc:0.2.0#L471 || source:Code/SimulationMaster.cc:0.2.0#L482 || ||simulation||Simulation Total||simulation||Ongoing simulation, including visualisation, communications, and Lattice Boltzmann||source:Code/SimulationMaster.cc:0.2.0#L370 || source:Code/SimulationMaster.cc:0.2.0#L512 || ||readNet||Reading communications||reading_communications||Pass the read blocks from reading cores to other cores||source:Code/geometry/GeometryReader.cc:0.2.0#L427||source:Code/geometry/GeometryReader.cc:0.2.0#L431|| ||readParse||Parsing||parsing||Parse the blocks and sites (not the header)||source:Code/geometry/GeometryReader.cc:0.2.0#L432||source:Code/geometry/GeometryReader.cc:0.2.0#L463|| ||readBlock||Read IO||read_io||MPI_File_read_at calls for the blocks||source:Code/geometry/GeometryReader.cc:0.2.0#L402||source:Code/geometry/GeometryReader.cc:0.2.0#L416|| ||readBlocksPrelim||Read Blocks prelim||reading_preliminaries||Compile and share the needed blocks between processes||source:Code/geometry/GeometryReader.cc:0.2.0#L324||source:Code/geometry/GeometryReader.cc:0.2.0#L357|| ||readBlocksAll||Read blocks all||reading_blocks||Read, share, and parse each block||source:Code/geometry/GeometryReader.cc:0.2.0#L359||source:Code/geometry/GeometryReader.cc:0.2.0#L379||

Note that prior to revision a4da55f30bbd, several of the timers were 'normalised', being divided by the number of images, snapshots, or cycles. For ease of comparison, this change is compensated for in the analysis tool.

I note here which timers trac sub-times of other timers, and are therefore measuring overlapping quantities. The ReadInLocalBloc method ( source:Code/geometry/GeometryReader.cc:0.2.0#L321 ) is called twice, so it's timers are called twice, within the fileRead and reRead timers, so is shown separately. Parent timers are not exhaustive over child timers.

  • total
    • netInitialise
      • domainDecomposition
        • reRead
          • readBlocksPrelim
          • readBlocksAll
            • readNet
            • readParse
            • readBlock
        • moves
        • parmetis
      • fileRead
        • initialDecomposition
        • readBlocksPrelim
        • readBlocksAll
          • readNet
          • readParse
          • readBlock
    • simulation
      • lb
      • vis
      • monitoring
      • mpiSend
      • mpiWait
      • snapshot
Clone this wiki locally