FrameTimings Struct Reference#
|
DiFfRG
Discretization Framework for functional Renormalization Group flows
|
Wall-clock cost of producing one output frame, split by where the time went. More...
#include <output_timings.hh>
Public Member Functions | |
| FrameTimings & | operator+= (const FrameTimings &other) |
Public Attributes | |
| double | contributor = 0. |
| the whole user contributor callback (attach + readouts) | |
| double | potential_solves = 0. |
| of which: internal::solve_potential | |
| double | fe_attach = 0. |
| double | build_patches = 0. |
| DataOut::build_patches. | |
| double | data_filter = 0. |
| DataOutFilter pass: write_filtered_data + fill_node_data. | |
| double | hdf5_write = 0. |
| group/dataset/attribute creation and writes | |
| double | hdf5_open_close = 0. |
| H5Fopen + H5Fflush + H5Fclose. | |
| double | hdf5_queue_wait = 0. |
| double | fe_flush = 0. |
| double | csv = 0. |
| CsvOutput::flush. | |
| double | total = 0. |
| the whole frame, from write_frame entry to flush_frame exit | |
| std::size_t | potential_solve_count = 0 |
| std::size_t | hdf5_open_count = 0 |
| how many times the .h5 was opened for this frame | |
Detailed Description
Wall-clock cost of producing one output frame, split by where the time went.
Frames are separated by many timesteps, so the handful of clock reads per frame is free compared to what they measure. The buckets are always collected; only the per-frame log line is gated on verbosity.
The buckets are nested, not disjoint. contributor is an umbrella over everything the user callback does, and both potential_solves and fe_attach happen inside it. Only total is the frame cost; summing the rest double-counts on purpose so that each bucket answers "how much of the frame went here" independently.
total contributor the whole user callback potential_solves of which: internal::solve_potential fe_attach of which: staging solution copies + backpressure build_patches } data_filter } everything below runs in flush_frame, hdf5_write } after the contributor has returned hdf5_open_close } fe_flush } csv }
Member Function Documentation
◆ operator+=()
| FrameTimings & DiFfRG::FrameTimings::operator+= | ( | const FrameTimings & | other | ) |
Accumulate another sink's contribution into this frame.
Member Data Documentation
◆ build_patches
| double DiFfRG::FrameTimings::build_patches = 0. |
DataOut::build_patches.
◆ contributor
| double DiFfRG::FrameTimings::contributor = 0. |
the whole user contributor callback (attach + readouts)
◆ csv
| double DiFfRG::FrameTimings::csv = 0. |
◆ data_filter
| double DiFfRG::FrameTimings::data_filter = 0. |
DataOutFilter pass: write_filtered_data + fill_node_data.
◆ fe_attach
| double DiFfRG::FrameTimings::fe_attach = 0. |
Of which: FEOutput::attach – copying each solution vector into the frame's staging buffer, plus any backpressure wait for a retired writer thread.
◆ fe_flush
| double DiFfRG::FrameTimings::fe_flush = 0. |
Handing the frame to a writer thread and releasing the previous one's DataOut. With VTK off, or asynchronous off, no thread is involved and this is the synchronous release (and, when async is off, the VTU write itself).
◆ hdf5_open_close
| double DiFfRG::FrameTimings::hdf5_open_close = 0. |
H5Fopen + H5Fflush + H5Fclose.
◆ hdf5_open_count
| std::size_t DiFfRG::FrameTimings::hdf5_open_count = 0 |
how many times the .h5 was opened for this frame
◆ hdf5_queue_wait
| double DiFfRG::FrameTimings::hdf5_queue_wait = 0. |
Time the producer spent blocked because the writer queue was full – i.e. the disk, not the integrator, was the limit. Zero when the writes run inline.
◆ hdf5_write
| double DiFfRG::FrameTimings::hdf5_write = 0. |
group/dataset/attribute creation and writes
◆ potential_solve_count
| std::size_t DiFfRG::FrameTimings::potential_solve_count = 0 |
◆ potential_solves
| double DiFfRG::FrameTimings::potential_solves = 0. |
of which: internal::solve_potential
◆ total
| double DiFfRG::FrameTimings::total = 0. |
the whole frame, from write_frame entry to flush_frame exit
The documentation for this struct was generated from the following file:
- /home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/discretization/data/output_timings.hh
Generated by