#include <counters.hpp>
Public Member Functions | |
| std::map< std::string, double > | as_map () const |
| void | print_summary () const |
| void | reset () |
| double | total_time_ms () const |
Public Attributes | |
| double | collapse_time_ms = 0 |
| double | diagonalize_time_ms = 0 |
| double | hamiltonian_application_time_ms = 0 |
| double | hamiltonian_fft_time_ms = 0 |
| double | hamiltonian_kinetic_time_ms = 0 |
| double | hamiltonian_nonlocal_time_ms = 0 |
| double | hamiltonian_projector_overlap_time_ms = 0 |
| The projector overlaps <beta|psi> of the nonlocal term, a part of nonlocal above. | |
| double | orthogonalize_time_ms = 0 |
| double | residual_time_ms = 0 |
| double | ritz_vector_time_ms = 0 |
| double | seed_time_ms = 0 |
| double | subspace_update_time_ms = 0 |
| int | total_solve_calls = 0 |
Definition at line 36 of file counters.hpp.
|
inline |
The same breakdown print_summary() logs, as data.
Caveat for anyone doing arithmetic on these: the four hamiltonian_* sub-component timers are NOT a partition of hamiltonian_application. They are accumulated in the applicator (hamiltonian_applicator/serial.hpp) while the parent is accumulated around the call site in davidson.hpp, and the sub-components are reached from paths the parent timer does not wrap – a 2-atom silicon run reports 72.9 ms of hamiltonian_fft against 52.2 ms of hamiltonian_application. Use them to compare like with like across configurations, not to decompose the parent.
Kept beside the printer so the two cannot drift: a stage added to one and forgotten in the other is the failure mode this guards against. Returns a flat map of stage name to milliseconds; the caller decides where it goes.
Definition at line 95 of file counters.hpp.
References collapse_time_ms, diagonalize_time_ms, hamiltonian_application_time_ms, hamiltonian_fft_time_ms, hamiltonian_kinetic_time_ms, hamiltonian_nonlocal_time_ms, hamiltonian_projector_overlap_time_ms, orthogonalize_time_ms, residual_time_ms, ritz_vector_time_ms, seed_time_ms, subspace_update_time_ms, and total_time_ms().
|
inline |
Definition at line 54 of file counters.hpp.
References collapse_time_ms, q3::log::debug(), diagonalize_time_ms, hamiltonian_application_time_ms, hamiltonian_fft_time_ms, hamiltonian_kinetic_time_ms, hamiltonian_nonlocal_time_ms, hamiltonian_projector_overlap_time_ms, orthogonalize_time_ms, residual_time_ms, ritz_vector_time_ms, seed_time_ms, subspace_update_time_ms, and total_time_ms().
Referenced by main().
|
inline |
Definition at line 73 of file counters.hpp.
Referenced by q3::ProfilingCounters::reset().
|
inline |
The same sum print_summary() reports as TOTAL. The Hamiltonian sub-components (fft, kinetic, nonlocal, allreduce) are deliberately excluded: they partition hamiltonian_application, so adding them again would double-count it.
Definition at line 117 of file counters.hpp.
References collapse_time_ms, diagonalize_time_ms, hamiltonian_application_time_ms, orthogonalize_time_ms, residual_time_ms, ritz_vector_time_ms, seed_time_ms, and subspace_update_time_ms.
Referenced by as_map(), and print_summary().
| double q3::ProfilingCounters::DavidsonTimingAccumulator::collapse_time_ms = 0 |
Definition at line 43 of file counters.hpp.
Referenced by as_map(), print_summary(), q3::PlanewaveDavidsonDiagonalizer::solve(), and total_time_ms().
| double q3::ProfilingCounters::DavidsonTimingAccumulator::diagonalize_time_ms = 0 |
Definition at line 44 of file counters.hpp.
Referenced by as_map(), print_summary(), q3::PlanewaveDavidsonDiagonalizer::solve(), and total_time_ms().
| double q3::ProfilingCounters::DavidsonTimingAccumulator::hamiltonian_application_time_ms = 0 |
Definition at line 41 of file counters.hpp.
Referenced by as_map(), print_summary(), q3::PlanewaveDavidsonDiagonalizer::solve(), and total_time_ms().
| double q3::ProfilingCounters::DavidsonTimingAccumulator::hamiltonian_fft_time_ms = 0 |
Definition at line 48 of file counters.hpp.
Referenced by as_map(), and print_summary().
| double q3::ProfilingCounters::DavidsonTimingAccumulator::hamiltonian_kinetic_time_ms = 0 |
Definition at line 49 of file counters.hpp.
Referenced by as_map(), and print_summary().
| double q3::ProfilingCounters::DavidsonTimingAccumulator::hamiltonian_nonlocal_time_ms = 0 |
Definition at line 50 of file counters.hpp.
Referenced by as_map(), and print_summary().
| double q3::ProfilingCounters::DavidsonTimingAccumulator::hamiltonian_projector_overlap_time_ms = 0 |
The projector overlaps <beta|psi> of the nonlocal term, a part of nonlocal above.
Definition at line 52 of file counters.hpp.
Referenced by as_map(), and print_summary().
| double q3::ProfilingCounters::DavidsonTimingAccumulator::orthogonalize_time_ms = 0 |
Definition at line 40 of file counters.hpp.
Referenced by as_map(), print_summary(), q3::PlanewaveDavidsonDiagonalizer::solve(), and total_time_ms().
| double q3::ProfilingCounters::DavidsonTimingAccumulator::residual_time_ms = 0 |
Definition at line 39 of file counters.hpp.
Referenced by as_map(), print_summary(), q3::PlanewaveDavidsonDiagonalizer::solve(), and total_time_ms().
| double q3::ProfilingCounters::DavidsonTimingAccumulator::ritz_vector_time_ms = 0 |
Definition at line 38 of file counters.hpp.
Referenced by as_map(), print_summary(), q3::PlanewaveDavidsonDiagonalizer::solve(), and total_time_ms().
| double q3::ProfilingCounters::DavidsonTimingAccumulator::seed_time_ms = 0 |
Definition at line 37 of file counters.hpp.
Referenced by as_map(), print_summary(), q3::PlanewaveDavidsonDiagonalizer::solve(), and total_time_ms().
| double q3::ProfilingCounters::DavidsonTimingAccumulator::subspace_update_time_ms = 0 |
Definition at line 42 of file counters.hpp.
Referenced by as_map(), print_summary(), q3::PlanewaveDavidsonDiagonalizer::solve(), and total_time_ms().
| int q3::ProfilingCounters::DavidsonTimingAccumulator::total_solve_calls = 0 |
Definition at line 45 of file counters.hpp.