FEAT 3
Finite Element Analysis Toolbox
Loading...
Searching...
No Matches
FEAT::Statistics Class Reference

Statistics collection class. More...

#include <statistics.hpp>

Static Public Member Functions

static void add_flops (Index flops)
 Add an amount of flops to the global flop counter. More...
 
static void add_solver_expression (std::shared_ptr< Solver::ExpressionBase > expression)
 
static void add_time_axpy (double seconds)
 
static void add_time_blas2 (double seconds)
 
static void add_time_blas3 (double seconds)
 
static void add_time_mpi_execute_blas2 (double seconds)
 
static void add_time_mpi_execute_blas3 (double seconds)
 
static void add_time_mpi_execute_collective (double seconds)
 
static void add_time_mpi_execute_reduction (double seconds)
 
static void add_time_mpi_wait_blas2 (double seconds)
 
static void add_time_mpi_wait_blas3 (double seconds)
 
static void add_time_mpi_wait_collective (double seconds)
 
static void add_time_mpi_wait_reduction (double seconds)
 
static void add_time_precon (double seconds)
 
static void add_time_reduction (double seconds)
 
static void compress_solver_expressions ()
 compress solver statistics (toe / defect norm / mpi timings) from previous calls More...
 
static Index get_flops ()
 Retrieve current global flop counter. More...
 
static String get_formatted_flops (double seconds, int ranks=1)
 Retrieve formatted flops per second string. More...
 
static String get_formatted_solver_internals (String target="default")
 Retrieve formatted timings and iteration counts of internal solver structures for the provided solver target. More...
 
static String get_formatted_solver_tree (String target="default")
 Returns a descriptive string of the complete solver tree. More...
 
static String get_formatted_times (double total_time)
 Retrieve formatted time consumption overview in percent relative to some provided total time. More...
 
static std::list< Index > & get_iters (String target)
 retrieve list of all overall solver iteration entries More...
 
static std::list< Index > & get_iters_schwarz (String target)
 retrieve list of all outer schwarz solver call iteration count entries More...
 
static const std::list< std::shared_ptr< Solver::ExpressionBase > > & get_solver_expressions ()
 
static double get_time_axpy ()
 
static double get_time_blas2 ()
 
static double get_time_blas3 ()
 
static std::list< std::vector< double > > & get_time_mg (String target)
 retrieve list of all overall solver toe entries per mg level More...
 
static std::list< std::vector< double > > & get_time_mg_mpi_execute_blas2 (String target)
 retrieve list of all overall solver mpi execute blas2 toe entries per level More...
 
static std::list< std::vector< double > > & get_time_mg_mpi_execute_blas3 (String target)
 retrieve list of all overall solver mpi execute blas3 toe entries per level More...
 
static std::list< std::vector< double > > & get_time_mg_mpi_execute_collective (String target)
 retrieve list of all overall solver mpi execute collective toe entries per level More...
 
static std::list< std::vector< double > > & get_time_mg_mpi_execute_reduction (String target)
 retrieve list of all overall solver mpi execute reduction toe entries per level More...
 
static std::list< std::vector< double > > & get_time_mg_mpi_wait_blas2 (String target)
 retrieve list of all overall solver mpi blas2 wait toe entries per level More...
 
static std::list< std::vector< double > > & get_time_mg_mpi_wait_blas3 (String target)
 retrieve list of all overall solver mpi blas3 wait toe entries per level More...
 
static std::list< std::vector< double > > & get_time_mg_mpi_wait_collective (String target)
 retrieve list of all overall solver mpi collective wait toe entries per level More...
 
static std::list< std::vector< double > > & get_time_mg_mpi_wait_reduction (String target)
 retrieve list of all overall solver mpi reduction wait toe entries per level More...
 
static double get_time_mpi_execute_blas2 ()
 
static std::list< double > & get_time_mpi_execute_blas2 (String target)
 retrieve list of all overall solver mpi execute blas2 toe entries More...
 
static double get_time_mpi_execute_blas3 ()
 
static std::list< double > & get_time_mpi_execute_blas3 (String target)
 retrieve list of all overall solver mpi execute blas3 toe entries More...
 
static double get_time_mpi_execute_collective ()
 
static std::list< double > & get_time_mpi_execute_collective (String target)
 retrieve list of all overall solver mpi execute collective toe entries More...
 
static double get_time_mpi_execute_reduction ()
 
static std::list< double > & get_time_mpi_execute_reduction (String target)
 retrieve list of all overall solver mpi execute reduction toe entries More...
 
static double get_time_mpi_wait_blas2 ()
 
static std::list< double > & get_time_mpi_wait_blas2 (String target)
 retrieve list of all overall solver mpi blas2 wait toe entries More...
 
static double get_time_mpi_wait_blas3 ()
 
static std::list< double > & get_time_mpi_wait_blas3 (String target)
 retrieve list of all overall solver mpi blas3 wait toe entries More...
 
static double get_time_mpi_wait_collective ()
 
static std::list< double > & get_time_mpi_wait_collective (String target)
 retrieve list of all overall solver mpi collective wait toe entries More...
 
static double get_time_mpi_wait_reduction ()
 
static std::list< double > & get_time_mpi_wait_reduction (String target)
 retrieve list of all overall solver mpi reduction wait toe entries More...
 
static double get_time_precon ()
 
static double get_time_reduction ()
 
static std::list< double > & get_time_schwarz (String target)
 retrieve list of all outer schwarz solver call toe entries More...
 
static std::list< double > & get_time_toe (String target)
 retrieve list of all overall solver toe entries More...
 
static void print_solver_expressions ()
 print out the complete solver expression list More...
 
static void reset ()
 Reset all internal counters (flops/times/solver_statistics) More...
 
static void reset_flops ()
 Reset global flop counter. More...
 
static void reset_times ()
 Reset all global timer counters. More...
 

Static Public Attributes

static bool enable_solver_expressions = false
 specifies whether collection of solver expressions is to be enabled More...
 
static String expression_target = "default"
 the current solver's descriptive string More...
 
static double toe_assembly
 time of assembly in seconds, needs initialization More...
 
static double toe_partition
 time of partitioning in seconds, needs initialization More...
 
static double toe_solve
 time of solution in seconds, needs initialization More...
 

Static Private Member Functions

static String _generate_formatted_solver_tree (String target)
 

Static Private Attributes

static Index _flops = Index(0)
 global flop counter More...
 
static std::map< String, String_formatted_solver_trees
 mapping of solver target name to formatted solver tree string More...
 
static std::map< String, std::list< std::vector< double > > > _outer_mg_mpi_execute_blas2
 
static std::map< String, std::list< std::vector< double > > > _outer_mg_mpi_execute_blas3
 
static std::map< String, std::list< std::vector< double > > > _outer_mg_mpi_execute_collective
 
static std::map< String, std::list< std::vector< double > > > _outer_mg_mpi_execute_reduction
 
static std::map< String, std::list< std::vector< double > > > _outer_mg_mpi_wait_blas2
 
static std::map< String, std::list< std::vector< double > > > _outer_mg_mpi_wait_blas3
 
static std::map< String, std::list< std::vector< double > > > _outer_mg_mpi_wait_collective
 
static std::map< String, std::list< std::vector< double > > > _outer_mg_mpi_wait_reduction
 
static std::map< String, std::list< std::vector< double > > > _outer_mg_toe
 mapping of solver name to list of outer multigrid level timings. each std::vector holds a complete level hierarchy of timings. More...
 
static std::map< String, std::list< Index > > _outer_schwarz_iters
 overall iterations of outer schwarz preconditioners internal solver More...
 
static std::map< String, std::list< double > > _outer_schwarz_toe
 overall time of outer schwarz preconditioners internal solver More...
 
static std::map< String, std::list< Index > > _overall_iters
 
static std::map< String, std::list< double > > _overall_mpi_execute_blas2
 
static std::map< String, std::list< double > > _overall_mpi_execute_blas3
 
static std::map< String, std::list< double > > _overall_mpi_execute_collective
 
static std::map< String, std::list< double > > _overall_mpi_execute_reduction
 
static std::map< String, std::list< double > > _overall_mpi_wait_blas2
 
static std::map< String, std::list< double > > _overall_mpi_wait_blas3
 
static std::map< String, std::list< double > > _overall_mpi_wait_collective
 
static std::map< String, std::list< double > > _overall_mpi_wait_reduction
 
static std::map< String, std::list< double > > _overall_toe
 overall time per reset call per solver name string. More...
 
static std::map< String, std::list< std::shared_ptr< Solver::ExpressionBase > > > _solver_expressions
 a consecutive list of all solver actions More...
 
static KahanAccumulator< double > _time_axpy
 global time of execution for blas-1 type operations More...
 
static KahanAccumulator< double > _time_blas2
 global time of execution for blas-2 type operations More...
 
static KahanAccumulator< double > _time_blas3
 global time of execution for blas-3 type operations More...
 
static KahanAccumulator< double > _time_mpi_execute_blas2
 global time of execution for mpi related idle/wait tasks of blas-2 operations More...
 
static KahanAccumulator< double > _time_mpi_execute_blas3
 global time of execution for mpi related idle/wait tasks of blas-3 operations More...
 
static KahanAccumulator< double > _time_mpi_execute_collective
 global time of execution for mpi related idle/wait tasks of collective operations (without scalar reduction) More...
 
static KahanAccumulator< double > _time_mpi_execute_reduction
 global time of execution for mpi related idle/wait tasks of (scalar) reduction operations More...
 
static KahanAccumulator< double > _time_mpi_wait_blas2
 global time of wait execution for mpi related idle/wait tasks of blas2 operations More...
 
static KahanAccumulator< double > _time_mpi_wait_blas3
 global time of wait execution for mpi related idle/wait tasks of blas3 operations More...
 
static KahanAccumulator< double > _time_mpi_wait_collective
 global time of wait execution for mpi related idle/wait tasks of collective operations (without scalar reduction) More...
 
static KahanAccumulator< double > _time_mpi_wait_reduction
 global time of wait execution for mpi related idle/wait tasks of (scalar) reduction operations More...
 
static KahanAccumulator< double > _time_precon
 global time of execution for special preconditioner kernel type operations More...
 
static KahanAccumulator< double > _time_reduction
 global time of execution for reduction type operations More...
 

Detailed Description

Statistics collection class.

The class Statistics encapsulates various hardware counters, that collects e.g. the accumulated flop count of an linear solver.

Definition at line 29 of file statistics.hpp.

Member Function Documentation

◆ _generate_formatted_solver_tree()

String Statistics::_generate_formatted_solver_tree ( String  target)
staticprivate

Definition at line 59 of file statistics.cpp.

◆ add_flops()

static void FEAT::Statistics::add_flops ( Index  flops)
inlinestatic

Add an amount of flops to the global flop counter.

Definition at line 206 of file statistics.hpp.

References _flops.

Referenced by FEAT::Solver::Vanka< LAFEM::SaddlePointMatrix< MatrixA_, MatrixB_, MatrixD_ >, Filter_ >::_apply_diag(), FEAT::Solver::Vanka< LAFEM::SaddlePointMatrix< MatrixA_, MatrixB_, MatrixD_ >, Filter_ >::_apply_full(), FEAT::LAFEM::DenseMatrix< DT_, IT_ >::apply(), FEAT::LAFEM::SparseMatrixBanded< DT_, IT_ >::apply(), FEAT::LAFEM::SparseMatrixBCSR< DT_, IT_, BlockHeight_, BlockWidth_ >::apply(), FEAT::LAFEM::SparseMatrixCSCR< DT_, IT_ >::apply(), FEAT::LAFEM::SparseMatrixCSR< DT_, IT_ >::apply(), FEAT::Solver::ILUPrecondWithBackend< PreferredBackend::generic, LAFEM::SparseMatrixCSR< DT_, IT_ >, Filter_ >::apply(), FEAT::Solver::ILUPrecondWithBackend< PreferredBackend::generic, LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, dim_ >, Filter_ >::apply(), FEAT::LAFEM::DenseMatrix< DT_, IT_ >::apply_transposed(), FEAT::LAFEM::SparseMatrixBanded< DT_, IT_ >::apply_transposed(), FEAT::LAFEM::SparseMatrixBCSR< DT_, IT_, BlockHeight_, BlockWidth_ >::apply_transposed(), FEAT::LAFEM::SparseMatrixCSCR< DT_, IT_ >::apply_transposed(), FEAT::LAFEM::SparseMatrixCSR< DT_, IT_ >::apply_transposed(), FEAT::LAFEM::DenseMatrix< DT_, IT_ >::axpy(), FEAT::LAFEM::DenseVector< DT_, IT_ >::axpy(), FEAT::LAFEM::DenseVectorBlocked< DT_, IT_, BlockSize_ >::axpy(), FEAT::LAFEM::SparseMatrixBanded< DT_, IT_ >::axpy(), FEAT::LAFEM::SparseMatrixBCSR< DT_, IT_, BlockHeight_, BlockWidth_ >::axpy(), FEAT::LAFEM::SparseMatrixCSCR< DT_, IT_ >::axpy(), FEAT::LAFEM::SparseMatrixCSR< DT_, IT_ >::axpy(), FEAT::LAFEM::DenseVectorBlocked< DT_, IT_, BlockSize_ >::axpy_blocked(), FEAT::LAFEM::DenseVectorBlocked< DT_, IT_, BlockSize_ >::component_copy(), FEAT::LAFEM::DenseVectorBlocked< DT_, IT_, BlockSize_ >::component_copy_to(), FEAT::LAFEM::DenseVector< DT_, IT_ >::component_invert(), FEAT::LAFEM::DenseVectorBlocked< DT_, IT_, BlockSize_ >::component_invert(), FEAT::LAFEM::DenseVector< DT_, IT_ >::component_product(), FEAT::LAFEM::DenseVectorBlocked< DT_, IT_, BlockSize_ >::component_product(), FEAT::LAFEM::DenseVector< DT_, IT_ >::dot(), FEAT::LAFEM::DenseVectorBlocked< DT_, IT_, BlockSize_ >::dot(), FEAT::LAFEM::DenseVectorBlocked< DT_, IT_, BlockSize_ >::dot_blocked(), FEAT::LAFEM::DenseMatrix< DT_, IT_ >::invert(), FEAT::LAFEM::DenseMatrix< DT_, IT_ >::multiply(), FEAT::LAFEM::DenseVector< DT_, IT_ >::norm2(), FEAT::LAFEM::DenseVectorBlocked< DT_, IT_, BlockSize_ >::norm2(), FEAT::LAFEM::DenseVectorBlocked< DT_, IT_, BlockSize_ >::norm2_blocked(), FEAT::LAFEM::DenseVectorBlocked< DT_, IT_, BlockSize_ >::norm2sqr_blocked(), FEAT::LAFEM::DenseMatrix< DT_, IT_ >::norm_frobenius(), FEAT::LAFEM::SparseMatrixBanded< DT_, IT_ >::norm_frobenius(), FEAT::LAFEM::SparseMatrixBCSR< DT_, IT_, BlockHeight_, BlockWidth_ >::norm_frobenius(), FEAT::LAFEM::SparseMatrixCSCR< DT_, IT_ >::norm_frobenius(), FEAT::LAFEM::SparseMatrixCSR< DT_, IT_ >::norm_frobenius(), FEAT::LAFEM::SparseMatrixBCSR< DT_, IT_, BlockHeight_, BlockWidth_ >::row_norm2(), FEAT::LAFEM::SparseMatrixCSR< DT_, IT_ >::row_norm2(), FEAT::LAFEM::SparseMatrixBCSR< DT_, IT_, BlockHeight_, BlockWidth_ >::row_norm2sqr(), FEAT::LAFEM::SparseMatrixCSR< DT_, IT_ >::row_norm2sqr(), FEAT::LAFEM::DenseMatrix< DT_, IT_ >::scale(), FEAT::LAFEM::DenseVector< DT_, IT_ >::scale(), FEAT::LAFEM::DenseVectorBlocked< DT_, IT_, BlockSize_ >::scale(), FEAT::LAFEM::SparseMatrixBanded< DT_, IT_ >::scale(), FEAT::LAFEM::SparseMatrixBCSR< DT_, IT_, BlockHeight_, BlockWidth_ >::scale(), FEAT::LAFEM::SparseMatrixCSCR< DT_, IT_ >::scale(), FEAT::LAFEM::SparseMatrixCSR< DT_, IT_ >::scale(), FEAT::LAFEM::DenseVectorBlocked< DT_, IT_, BlockSize_ >::scale_blocked(), FEAT::LAFEM::SparseMatrixCSR< DT_, IT_ >::scale_cols(), FEAT::LAFEM::SparseMatrixBCSR< DT_, IT_, BlockHeight_, BlockWidth_ >::scale_rows(), FEAT::LAFEM::SparseMatrixCSR< DT_, IT_ >::scale_rows(), FEAT::LAFEM::DenseVector< DT_, IT_ >::triple_dot(), FEAT::LAFEM::DenseVectorBlocked< DT_, IT_, BlockSize_ >::triple_dot(), and FEAT::LAFEM::DenseVectorBlocked< DT_, IT_, BlockSize_ >::triple_dot_blocked().

◆ add_solver_expression()

static void FEAT::Statistics::add_solver_expression ( std::shared_ptr< Solver::ExpressionBase expression)
inlinestatic

Definition at line 340 of file statistics.hpp.

◆ add_time_axpy()

static void FEAT::Statistics::add_time_axpy ( double  seconds)
inlinestatic

Definition at line 246 of file statistics.hpp.

◆ add_time_blas2()

static void FEAT::Statistics::add_time_blas2 ( double  seconds)
inlinestatic

Definition at line 238 of file statistics.hpp.

◆ add_time_blas3()

static void FEAT::Statistics::add_time_blas3 ( double  seconds)
inlinestatic

Definition at line 242 of file statistics.hpp.

◆ add_time_mpi_execute_blas2()

static void FEAT::Statistics::add_time_mpi_execute_blas2 ( double  seconds)
inlinestatic

Definition at line 258 of file statistics.hpp.

◆ add_time_mpi_execute_blas3()

static void FEAT::Statistics::add_time_mpi_execute_blas3 ( double  seconds)
inlinestatic

Definition at line 262 of file statistics.hpp.

◆ add_time_mpi_execute_collective()

static void FEAT::Statistics::add_time_mpi_execute_collective ( double  seconds)
inlinestatic

Definition at line 266 of file statistics.hpp.

◆ add_time_mpi_execute_reduction()

static void FEAT::Statistics::add_time_mpi_execute_reduction ( double  seconds)
inlinestatic

Definition at line 254 of file statistics.hpp.

◆ add_time_mpi_wait_blas2()

static void FEAT::Statistics::add_time_mpi_wait_blas2 ( double  seconds)
inlinestatic

Definition at line 274 of file statistics.hpp.

◆ add_time_mpi_wait_blas3()

static void FEAT::Statistics::add_time_mpi_wait_blas3 ( double  seconds)
inlinestatic

Definition at line 278 of file statistics.hpp.

◆ add_time_mpi_wait_collective()

static void FEAT::Statistics::add_time_mpi_wait_collective ( double  seconds)
inlinestatic

Definition at line 282 of file statistics.hpp.

◆ add_time_mpi_wait_reduction()

static void FEAT::Statistics::add_time_mpi_wait_reduction ( double  seconds)
inlinestatic

Definition at line 270 of file statistics.hpp.

◆ add_time_precon()

static void FEAT::Statistics::add_time_precon ( double  seconds)
inlinestatic

Definition at line 250 of file statistics.hpp.

◆ add_time_reduction()

static void FEAT::Statistics::add_time_reduction ( double  seconds)
inlinestatic

Definition at line 234 of file statistics.hpp.

◆ compress_solver_expressions()

void Statistics::compress_solver_expressions ( )
static

◆ get_flops()

static Index FEAT::Statistics::get_flops ( )
inlinestatic

Retrieve current global flop counter.

Definition at line 212 of file statistics.hpp.

References _flops.

◆ get_formatted_flops()

static String FEAT::Statistics::get_formatted_flops ( double  seconds,
int  ranks = 1 
)
inlinestatic

Retrieve formatted flops per second string.

Definition at line 218 of file statistics.hpp.

References _flops, and FEAT::stringify().

Referenced by FEAT::Control::Statistics::report().

◆ get_formatted_solver_internals()

◆ get_formatted_solver_tree()

static String FEAT::Statistics::get_formatted_solver_tree ( String  target = "default")
inlinestatic

Returns a descriptive string of the complete solver tree.

Create and format a string describing the complete solver tree.

Note
This method makes some simplifications, e.g. stating only one smoother for the complete FEAT::Solver::BasicVCycle.
The solver must have been executed (successfully) at least one time, to make the solver tree available.

Definition at line 361 of file statistics.hpp.

References _formatted_solver_trees, and compress_solver_expressions().

Referenced by FEAT::Control::Meshopt::DuDvFunctionalControl< DT_, IT_, DomainControl_ >::info(), FEAT::Control::Meshopt::HyperelasticityFunctionalControl< DT_, IT_, DomainControl_, Hyperelasticity_ >::info(), and FEAT::Control::Statistics::report().

◆ get_formatted_times()

String Statistics::get_formatted_times ( double  total_time)
static

Retrieve formatted time consumption overview in percent relative to some provided total time.

Note
This method uses mpi collectives and thus needs to be called by all ranks, even if you don't use the result on every rank on your own.

Definition at line 473 of file statistics.cpp.

References FEAT::Dist::Comm::allreduce(), FEAT::Dist::op_max, FEAT::Dist::op_min, FEAT::String::pad_back(), FEAT::stringify(), FEAT::KahanAccumulator< DT_ >::value, and FEAT::Dist::Comm::world().

Referenced by FEAT::Control::Statistics::report().

◆ get_iters()

static std::list< Index > & FEAT::Statistics::get_iters ( String  target)
inlinestatic

retrieve list of all overall solver iteration entries

Definition at line 384 of file statistics.hpp.

Referenced by get_formatted_solver_internals().

◆ get_iters_schwarz()

static std::list< Index > & FEAT::Statistics::get_iters_schwarz ( String  target)
inlinestatic

retrieve list of all outer schwarz solver call iteration count entries

Definition at line 498 of file statistics.hpp.

References _outer_schwarz_iters.

Referenced by get_formatted_solver_internals().

◆ get_solver_expressions()

static const std::list< std::shared_ptr< Solver::ExpressionBase > > & FEAT::Statistics::get_solver_expressions ( )
inlinestatic

Definition at line 346 of file statistics.hpp.

◆ get_time_axpy()

static double FEAT::Statistics::get_time_axpy ( )
inlinestatic

Definition at line 299 of file statistics.hpp.

◆ get_time_blas2()

static double FEAT::Statistics::get_time_blas2 ( )
inlinestatic

Definition at line 291 of file statistics.hpp.

◆ get_time_blas3()

static double FEAT::Statistics::get_time_blas3 ( )
inlinestatic

Definition at line 295 of file statistics.hpp.

◆ get_time_mg()

static std::list< std::vector< double > > & FEAT::Statistics::get_time_mg ( String  target)
inlinestatic

retrieve list of all overall solver toe entries per mg level

Definition at line 438 of file statistics.hpp.

References _outer_mg_toe.

Referenced by get_formatted_solver_internals().

◆ get_time_mg_mpi_execute_blas2()

static std::list< std::vector< double > > & FEAT::Statistics::get_time_mg_mpi_execute_blas2 ( String  target)
inlinestatic

retrieve list of all overall solver mpi execute blas2 toe entries per level

Definition at line 450 of file statistics.hpp.

Referenced by get_formatted_solver_internals().

◆ get_time_mg_mpi_execute_blas3()

static std::list< std::vector< double > > & FEAT::Statistics::get_time_mg_mpi_execute_blas3 ( String  target)
inlinestatic

retrieve list of all overall solver mpi execute blas3 toe entries per level

Definition at line 456 of file statistics.hpp.

Referenced by get_formatted_solver_internals().

◆ get_time_mg_mpi_execute_collective()

static std::list< std::vector< double > > & FEAT::Statistics::get_time_mg_mpi_execute_collective ( String  target)
inlinestatic

retrieve list of all overall solver mpi execute collective toe entries per level

Definition at line 462 of file statistics.hpp.

Referenced by get_formatted_solver_internals().

◆ get_time_mg_mpi_execute_reduction()

static std::list< std::vector< double > > & FEAT::Statistics::get_time_mg_mpi_execute_reduction ( String  target)
inlinestatic

retrieve list of all overall solver mpi execute reduction toe entries per level

Definition at line 444 of file statistics.hpp.

Referenced by get_formatted_solver_internals().

◆ get_time_mg_mpi_wait_blas2()

static std::list< std::vector< double > > & FEAT::Statistics::get_time_mg_mpi_wait_blas2 ( String  target)
inlinestatic

retrieve list of all overall solver mpi blas2 wait toe entries per level

Definition at line 474 of file statistics.hpp.

Referenced by get_formatted_solver_internals().

◆ get_time_mg_mpi_wait_blas3()

static std::list< std::vector< double > > & FEAT::Statistics::get_time_mg_mpi_wait_blas3 ( String  target)
inlinestatic

retrieve list of all overall solver mpi blas3 wait toe entries per level

Definition at line 480 of file statistics.hpp.

Referenced by get_formatted_solver_internals().

◆ get_time_mg_mpi_wait_collective()

static std::list< std::vector< double > > & FEAT::Statistics::get_time_mg_mpi_wait_collective ( String  target)
inlinestatic

retrieve list of all overall solver mpi collective wait toe entries per level

Definition at line 486 of file statistics.hpp.

Referenced by get_formatted_solver_internals().

◆ get_time_mg_mpi_wait_reduction()

static std::list< std::vector< double > > & FEAT::Statistics::get_time_mg_mpi_wait_reduction ( String  target)
inlinestatic

retrieve list of all overall solver mpi reduction wait toe entries per level

Definition at line 468 of file statistics.hpp.

Referenced by get_formatted_solver_internals().

◆ get_time_mpi_execute_blas2() [1/2]

static double FEAT::Statistics::get_time_mpi_execute_blas2 ( )
inlinestatic

Definition at line 311 of file statistics.hpp.

◆ get_time_mpi_execute_blas2() [2/2]

static std::list< double > & FEAT::Statistics::get_time_mpi_execute_blas2 ( String  target)
inlinestatic

retrieve list of all overall solver mpi execute blas2 toe entries

Definition at line 396 of file statistics.hpp.

◆ get_time_mpi_execute_blas3() [1/2]

static double FEAT::Statistics::get_time_mpi_execute_blas3 ( )
inlinestatic

Definition at line 315 of file statistics.hpp.

◆ get_time_mpi_execute_blas3() [2/2]

static std::list< double > & FEAT::Statistics::get_time_mpi_execute_blas3 ( String  target)
inlinestatic

retrieve list of all overall solver mpi execute blas3 toe entries

Definition at line 402 of file statistics.hpp.

◆ get_time_mpi_execute_collective() [1/2]

static double FEAT::Statistics::get_time_mpi_execute_collective ( )
inlinestatic

Definition at line 319 of file statistics.hpp.

◆ get_time_mpi_execute_collective() [2/2]

static std::list< double > & FEAT::Statistics::get_time_mpi_execute_collective ( String  target)
inlinestatic

retrieve list of all overall solver mpi execute collective toe entries

Definition at line 408 of file statistics.hpp.

◆ get_time_mpi_execute_reduction() [1/2]

static double FEAT::Statistics::get_time_mpi_execute_reduction ( )
inlinestatic

Definition at line 307 of file statistics.hpp.

◆ get_time_mpi_execute_reduction() [2/2]

static std::list< double > & FEAT::Statistics::get_time_mpi_execute_reduction ( String  target)
inlinestatic

retrieve list of all overall solver mpi execute reduction toe entries

Definition at line 390 of file statistics.hpp.

◆ get_time_mpi_wait_blas2() [1/2]

static double FEAT::Statistics::get_time_mpi_wait_blas2 ( )
inlinestatic

Definition at line 327 of file statistics.hpp.

◆ get_time_mpi_wait_blas2() [2/2]

static std::list< double > & FEAT::Statistics::get_time_mpi_wait_blas2 ( String  target)
inlinestatic

retrieve list of all overall solver mpi blas2 wait toe entries

Definition at line 420 of file statistics.hpp.

◆ get_time_mpi_wait_blas3() [1/2]

static double FEAT::Statistics::get_time_mpi_wait_blas3 ( )
inlinestatic

Definition at line 331 of file statistics.hpp.

◆ get_time_mpi_wait_blas3() [2/2]

static std::list< double > & FEAT::Statistics::get_time_mpi_wait_blas3 ( String  target)
inlinestatic

retrieve list of all overall solver mpi blas3 wait toe entries

Definition at line 426 of file statistics.hpp.

◆ get_time_mpi_wait_collective() [1/2]

static double FEAT::Statistics::get_time_mpi_wait_collective ( )
inlinestatic

Definition at line 335 of file statistics.hpp.

◆ get_time_mpi_wait_collective() [2/2]

static std::list< double > & FEAT::Statistics::get_time_mpi_wait_collective ( String  target)
inlinestatic

retrieve list of all overall solver mpi collective wait toe entries

Definition at line 432 of file statistics.hpp.

◆ get_time_mpi_wait_reduction() [1/2]

static double FEAT::Statistics::get_time_mpi_wait_reduction ( )
inlinestatic

Definition at line 323 of file statistics.hpp.

◆ get_time_mpi_wait_reduction() [2/2]

static std::list< double > & FEAT::Statistics::get_time_mpi_wait_reduction ( String  target)
inlinestatic

retrieve list of all overall solver mpi reduction wait toe entries

Definition at line 414 of file statistics.hpp.

◆ get_time_precon()

static double FEAT::Statistics::get_time_precon ( )
inlinestatic

Definition at line 303 of file statistics.hpp.

◆ get_time_reduction()

static double FEAT::Statistics::get_time_reduction ( )
inlinestatic

Definition at line 287 of file statistics.hpp.

◆ get_time_schwarz()

static std::list< double > & FEAT::Statistics::get_time_schwarz ( String  target)
inlinestatic

retrieve list of all outer schwarz solver call toe entries

Definition at line 492 of file statistics.hpp.

References _outer_schwarz_toe.

Referenced by get_formatted_solver_internals().

◆ get_time_toe()

static std::list< double > & FEAT::Statistics::get_time_toe ( String  target)
inlinestatic

retrieve list of all overall solver toe entries

Definition at line 378 of file statistics.hpp.

References _overall_toe.

Referenced by get_formatted_solver_internals().

◆ print_solver_expressions()

◆ reset()

static void FEAT::Statistics::reset ( )
inlinestatic

Reset all internal counters (flops/times/solver_statistics)

Definition at line 177 of file statistics.hpp.

References _outer_mg_toe, _outer_schwarz_iters, _outer_schwarz_toe, _overall_toe, _solver_expressions, reset_flops(), and reset_times().

◆ reset_flops()

static void FEAT::Statistics::reset_flops ( )
inlinestatic

Reset global flop counter.

Definition at line 229 of file statistics.hpp.

References _flops.

Referenced by reset().

◆ reset_times()

Member Data Documentation

◆ _flops

Index Statistics::_flops = Index(0)
staticprivate

global flop counter

Definition at line 34 of file statistics.hpp.

Referenced by add_flops(), get_flops(), get_formatted_flops(), and reset_flops().

◆ _formatted_solver_trees

std::map< String, String > Statistics::_formatted_solver_trees
staticprivate

mapping of solver target name to formatted solver tree string

Definition at line 79 of file statistics.hpp.

Referenced by compress_solver_expressions(), get_formatted_solver_internals(), and get_formatted_solver_tree().

◆ _outer_mg_mpi_execute_blas2

std::map< String, std::list< std::vector< double > > > Statistics::_outer_mg_mpi_execute_blas2
staticprivate

Definition at line 95 of file statistics.hpp.

◆ _outer_mg_mpi_execute_blas3

std::map< String, std::list< std::vector< double > > > Statistics::_outer_mg_mpi_execute_blas3
staticprivate

Definition at line 96 of file statistics.hpp.

◆ _outer_mg_mpi_execute_collective

std::map< String, std::list< std::vector< double > > > Statistics::_outer_mg_mpi_execute_collective
staticprivate

Definition at line 97 of file statistics.hpp.

◆ _outer_mg_mpi_execute_reduction

std::map< String, std::list< std::vector< double > > > Statistics::_outer_mg_mpi_execute_reduction
staticprivate

Definition at line 94 of file statistics.hpp.

◆ _outer_mg_mpi_wait_blas2

std::map< String, std::list< std::vector< double > > > Statistics::_outer_mg_mpi_wait_blas2
staticprivate

Definition at line 99 of file statistics.hpp.

◆ _outer_mg_mpi_wait_blas3

std::map< String, std::list< std::vector< double > > > Statistics::_outer_mg_mpi_wait_blas3
staticprivate

Definition at line 100 of file statistics.hpp.

◆ _outer_mg_mpi_wait_collective

std::map< String, std::list< std::vector< double > > > Statistics::_outer_mg_mpi_wait_collective
staticprivate

Definition at line 101 of file statistics.hpp.

◆ _outer_mg_mpi_wait_reduction

std::map< String, std::list< std::vector< double > > > Statistics::_outer_mg_mpi_wait_reduction
staticprivate

Definition at line 98 of file statistics.hpp.

◆ _outer_mg_toe

std::map< String, std::list< std::vector< double > > > Statistics::_outer_mg_toe
staticprivate

mapping of solver name to list of outer multigrid level timings. each std::vector holds a complete level hierarchy of timings.

Definition at line 93 of file statistics.hpp.

Referenced by compress_solver_expressions(), get_time_mg(), and reset().

◆ _outer_schwarz_iters

std::map< String, std::list< Index > > Statistics::_outer_schwarz_iters
staticprivate

overall iterations of outer schwarz preconditioners internal solver

Definition at line 105 of file statistics.hpp.

Referenced by compress_solver_expressions(), get_iters_schwarz(), and reset().

◆ _outer_schwarz_toe

std::map< String, std::list< double > > Statistics::_outer_schwarz_toe
staticprivate

overall time of outer schwarz preconditioners internal solver

Definition at line 103 of file statistics.hpp.

Referenced by compress_solver_expressions(), get_time_schwarz(), and reset().

◆ _overall_iters

std::map< String, std::list< Index > > Statistics::_overall_iters
staticprivate

Definition at line 83 of file statistics.hpp.

◆ _overall_mpi_execute_blas2

std::map< String, std::list< double > > Statistics::_overall_mpi_execute_blas2
staticprivate

Definition at line 85 of file statistics.hpp.

◆ _overall_mpi_execute_blas3

std::map< String, std::list< double > > Statistics::_overall_mpi_execute_blas3
staticprivate

Definition at line 86 of file statistics.hpp.

◆ _overall_mpi_execute_collective

std::map< String, std::list< double > > Statistics::_overall_mpi_execute_collective
staticprivate

Definition at line 87 of file statistics.hpp.

◆ _overall_mpi_execute_reduction

std::map< String, std::list< double > > Statistics::_overall_mpi_execute_reduction
staticprivate

Definition at line 84 of file statistics.hpp.

◆ _overall_mpi_wait_blas2

std::map< String, std::list< double > > Statistics::_overall_mpi_wait_blas2
staticprivate

Definition at line 89 of file statistics.hpp.

◆ _overall_mpi_wait_blas3

std::map< String, std::list< double > > Statistics::_overall_mpi_wait_blas3
staticprivate

Definition at line 90 of file statistics.hpp.

◆ _overall_mpi_wait_collective

std::map< String, std::list< double > > Statistics::_overall_mpi_wait_collective
staticprivate

Definition at line 91 of file statistics.hpp.

◆ _overall_mpi_wait_reduction

std::map< String, std::list< double > > Statistics::_overall_mpi_wait_reduction
staticprivate

Definition at line 88 of file statistics.hpp.

◆ _overall_toe

std::map< String, std::list< double > > Statistics::_overall_toe
staticprivate

overall time per reset call per solver name string.

Definition at line 82 of file statistics.hpp.

Referenced by compress_solver_expressions(), get_time_toe(), and reset().

◆ _solver_expressions

std::map< String, std::list< std::shared_ptr< Solver::ExpressionBase > > > Statistics::_solver_expressions
staticprivate

a consecutive list of all solver actions

Definition at line 76 of file statistics.hpp.

Referenced by compress_solver_expressions(), print_solver_expressions(), and reset().

◆ _time_axpy

KahanAccumulator< double > Statistics::_time_axpy
staticprivate

global time of execution for blas-1 type operations

Definition at line 46 of file statistics.hpp.

Referenced by reset_times().

◆ _time_blas2

KahanAccumulator< double > Statistics::_time_blas2
staticprivate

global time of execution for blas-2 type operations

Definition at line 40 of file statistics.hpp.

Referenced by reset_times().

◆ _time_blas3

KahanAccumulator< double > Statistics::_time_blas3
staticprivate

global time of execution for blas-3 type operations

Definition at line 43 of file statistics.hpp.

Referenced by reset_times().

◆ _time_mpi_execute_blas2

KahanAccumulator< double > Statistics::_time_mpi_execute_blas2
staticprivate

global time of execution for mpi related idle/wait tasks of blas-2 operations

Definition at line 55 of file statistics.hpp.

Referenced by reset_times().

◆ _time_mpi_execute_blas3

KahanAccumulator< double > Statistics::_time_mpi_execute_blas3
staticprivate

global time of execution for mpi related idle/wait tasks of blas-3 operations

Definition at line 58 of file statistics.hpp.

Referenced by reset_times().

◆ _time_mpi_execute_collective

KahanAccumulator< double > Statistics::_time_mpi_execute_collective
staticprivate

global time of execution for mpi related idle/wait tasks of collective operations (without scalar reduction)

Definition at line 61 of file statistics.hpp.

Referenced by reset_times().

◆ _time_mpi_execute_reduction

KahanAccumulator< double > Statistics::_time_mpi_execute_reduction
staticprivate

global time of execution for mpi related idle/wait tasks of (scalar) reduction operations

Definition at line 52 of file statistics.hpp.

Referenced by reset_times().

◆ _time_mpi_wait_blas2

KahanAccumulator< double > Statistics::_time_mpi_wait_blas2
staticprivate

global time of wait execution for mpi related idle/wait tasks of blas2 operations

Definition at line 67 of file statistics.hpp.

Referenced by reset_times().

◆ _time_mpi_wait_blas3

KahanAccumulator< double > Statistics::_time_mpi_wait_blas3
staticprivate

global time of wait execution for mpi related idle/wait tasks of blas3 operations

Definition at line 70 of file statistics.hpp.

Referenced by reset_times().

◆ _time_mpi_wait_collective

KahanAccumulator< double > Statistics::_time_mpi_wait_collective
staticprivate

global time of wait execution for mpi related idle/wait tasks of collective operations (without scalar reduction)

Definition at line 73 of file statistics.hpp.

Referenced by reset_times().

◆ _time_mpi_wait_reduction

KahanAccumulator< double > Statistics::_time_mpi_wait_reduction
staticprivate

global time of wait execution for mpi related idle/wait tasks of (scalar) reduction operations

Definition at line 64 of file statistics.hpp.

Referenced by reset_times().

◆ _time_precon

KahanAccumulator< double > Statistics::_time_precon
staticprivate

global time of execution for special preconditioner kernel type operations

Definition at line 49 of file statistics.hpp.

Referenced by reset_times().

◆ _time_reduction

KahanAccumulator< double > Statistics::_time_reduction
staticprivate

global time of execution for reduction type operations

Definition at line 37 of file statistics.hpp.

Referenced by reset_times().

◆ enable_solver_expressions

bool Statistics::enable_solver_expressions = false
static

specifies whether collection of solver expressions is to be enabled

Definition at line 165 of file statistics.hpp.

◆ expression_target

◆ toe_assembly

double Statistics::toe_assembly
static

time of assembly in seconds, needs initialization

Definition at line 169 of file statistics.hpp.

Referenced by FEAT::Control::Statistics::report().

◆ toe_partition

◆ toe_solve

double Statistics::toe_solve
static

time of solution in seconds, needs initialization

Definition at line 171 of file statistics.hpp.

Referenced by FEAT::Control::Statistics::report().


The documentation for this class was generated from the following files: