Metering support with time meter (#217)
* An abstract `meter` class that defines interface for taking a reading, and returning the meter results as a json object. * A `time_meter` implementation of the `meter` that measures wall time. * To generate metering reports with global information, the global communication policy interfaces were extended to support `gather` and `barrier` operations. These are trivial for serial and dry run policies, and wrap the appropriate MPI calls for the MPI policy. * a `meter_manager` type that stores a list of meters was created * will also have memory and power meters soon. * a meter manager was added to the miniapp and now records startup, model initialization, time stepping and final file io times.
Showing
- miniapp/miniapp.cpp 15 additions, 15 deletionsminiapp/miniapp.cpp
- src/CMakeLists.txt 3 additions, 0 deletionssrc/CMakeLists.txt
- src/communication/dryrun_global_policy.hpp 7 additions, 0 deletionssrc/communication/dryrun_global_policy.hpp
- src/communication/mpi_global_policy.hpp 9 additions, 0 deletionssrc/communication/mpi_global_policy.hpp
- src/communication/serial_global_policy.hpp 7 additions, 0 deletionssrc/communication/serial_global_policy.hpp
- src/profiling/meter.cpp 23 additions, 0 deletionssrc/profiling/meter.cpp
- src/profiling/meter.hpp 62 additions, 0 deletionssrc/profiling/meter.hpp
- src/profiling/meter_manager.cpp 71 additions, 0 deletionssrc/profiling/meter_manager.cpp
- src/profiling/meter_manager.hpp 30 additions, 0 deletionssrc/profiling/meter_manager.hpp
- src/profiling/meters.md 27 additions, 0 deletionssrc/profiling/meters.md
- src/profiling/profiler.cpp 14 additions, 18 deletionssrc/profiling/profiler.cpp
- src/profiling/time_meter.cpp 67 additions, 0 deletionssrc/profiling/time_meter.cpp
- src/profiling/time_meter.hpp 26 additions, 0 deletionssrc/profiling/time_meter.hpp
Please register or sign in to comment