Loading...
Searching...
No Matches
q3::ProfilingCounters::DavidsonTimingAccumulator Struct Reference

#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
 

Detailed Description

Definition at line 36 of file counters.hpp.

Member Function Documentation

◆ as_map()

std::map< std::string, double > q3::ProfilingCounters::DavidsonTimingAccumulator::as_map ( ) const
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().

◆ print_summary()

◆ reset()

void q3::ProfilingCounters::DavidsonTimingAccumulator::reset ( )
inline

Definition at line 73 of file counters.hpp.

Referenced by q3::ProfilingCounters::reset().

◆ total_time_ms()

double q3::ProfilingCounters::DavidsonTimingAccumulator::total_time_ms ( ) const
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().

Member Data Documentation

◆ collapse_time_ms

double q3::ProfilingCounters::DavidsonTimingAccumulator::collapse_time_ms = 0

◆ diagonalize_time_ms

double q3::ProfilingCounters::DavidsonTimingAccumulator::diagonalize_time_ms = 0

◆ hamiltonian_application_time_ms

double q3::ProfilingCounters::DavidsonTimingAccumulator::hamiltonian_application_time_ms = 0

◆ hamiltonian_fft_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().

◆ hamiltonian_kinetic_time_ms

double q3::ProfilingCounters::DavidsonTimingAccumulator::hamiltonian_kinetic_time_ms = 0

Definition at line 49 of file counters.hpp.

Referenced by as_map(), and print_summary().

◆ hamiltonian_nonlocal_time_ms

double q3::ProfilingCounters::DavidsonTimingAccumulator::hamiltonian_nonlocal_time_ms = 0

Definition at line 50 of file counters.hpp.

Referenced by as_map(), and print_summary().

◆ hamiltonian_projector_overlap_time_ms

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().

◆ orthogonalize_time_ms

double q3::ProfilingCounters::DavidsonTimingAccumulator::orthogonalize_time_ms = 0

◆ residual_time_ms

double q3::ProfilingCounters::DavidsonTimingAccumulator::residual_time_ms = 0

◆ ritz_vector_time_ms

double q3::ProfilingCounters::DavidsonTimingAccumulator::ritz_vector_time_ms = 0

◆ seed_time_ms

double q3::ProfilingCounters::DavidsonTimingAccumulator::seed_time_ms = 0

◆ subspace_update_time_ms

double q3::ProfilingCounters::DavidsonTimingAccumulator::subspace_update_time_ms = 0

◆ total_solve_calls

int q3::ProfilingCounters::DavidsonTimingAccumulator::total_solve_calls = 0

Definition at line 45 of file counters.hpp.


The documentation for this struct was generated from the following file: