![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
The metrics getAvg returns, after filtering. More...
#include <line/solvers/mva/solver_mva_runner.h>
Public Attributes | |
| Matrix< T > | QN |
| queue length | |
| Matrix< T > | UN |
| utilization | |
| Matrix< T > | RN |
| response time, per visit | |
| Matrix< T > | TN |
| throughput | |
| Matrix< T > | AN |
| arrival rate | |
| Matrix< T > | WN |
| residence time, per job | |
| std::vector< T > | CN |
| system response time per class | |
| std::vector< T > | XN |
| system throughput per class | |
| std::string | method |
| the method asked for | |
| std::string | actualmethod |
| the algorithm that ran | |
| std::string | warning |
| The reference's own warning text, verbatim, empty when it did not warn. | |
| std::vector< T > | listcost |
| (h) mean storage cost held by each cache list, K_j = sum_i sigma_i pi_ij, filled only by the NC cache branch on a model with item sizes; EMPTY otherwise. | |
| int | iter = 0 |
| std::optional< bool > | converged |
| Whether the fixed point met its tolerance, empty when the handler reports none. | |
| std::optional< double > | lognormconst |
| @@SolverNC/getProbNormConstAggr, i.e. | |
| solvers::CacheMetrics< T > | cache |
| What the cache branches observed, EMPTY on a model with no Cache node and on every solver that does not analyze one. | |
| std::shared_ptr< qn::NetworkStruct< T > > | refreshed_struct |
| The struct whose cache self-switch carries the CONVERGED hit/miss split, filled by the cacheqn branches and NULL for every other model. | |
The metrics getAvg returns, after filtering.
Definition at line 56 of file solver_mva_runner.h.
| std::string line::mva::AvgResult< T >::actualmethod |
the algorithm that ran
Definition at line 66 of file solver_mva_runner.h.
Referenced by line::solvers::avg_result_from_sim(), line::NetworkSolver::avg_table(), line::ag::solver_ag_run_analyzer(), line::ba::solver_ba_run_analyzer(), line::ctmc::solver_ctmc_avg_table(), line::ctmc::solver_ctmc_fes_aggregation(), line::mam::solver_mam_run_analyzer(), line::mva::solver_mva_run_analyzer(), line::nc::solver_nc_run_analyzer(), line::qns::solver_qns_run_analyzer(), line::tr::transform_solve_chains(), line::tr::transform_solve_lc(), and line::uq::uq_aggregate().
| Matrix<T> line::mva::AvgResult< T >::AN |
arrival rate
Definition at line 61 of file solver_mva_runner.h.
Referenced by line::solvers::avg_result_from_sim(), line::solvers::node_metrics(), line::ag::solver_ag_run_analyzer(), line::ba::solver_ba_run_analyzer(), line::ctmc::solver_ctmc_avg_table(), line::ctmc::solver_ctmc_fes_aggregation(), line::solvers::solver_get_avg_chain(), line::mam::solver_mam_run_analyzer(), line::mva::solver_mva_run_analyzer(), line::nc::solver_nc_run_analyzer(), line::qns::solver_qns_run_analyzer(), line::tr::transform_solve_chains(), line::tr::transform_solve_lc(), line::uq::uq_aggregate(), and line::uq::uq_metric_matrix().
| solvers::CacheMetrics<T> line::mva::AvgResult< T >::cache |
What the cache branches observed, EMPTY on a model with no Cache node and on every solver that does not analyze one.
getAvgCacheTable and getAvgItemTable are built from it; see solvers::CacheMetrics.
Definition at line 112 of file solver_mva_runner.h.
Referenced by line::solvers::node_metrics(), line::ctmc::solver_ctmc_avg_table(), line::mva::solver_mva_run_analyzer(), and line::nc::solver_nc_run_analyzer().
| std::vector<T> line::mva::AvgResult< T >::CN |
system response time per class
Definition at line 63 of file solver_mva_runner.h.
Referenced by line::solvers::avg_result_from_sim(), line::ag::solver_ag_run_analyzer(), line::ba::solver_ba_run_analyzer(), line::ctmc::solver_ctmc_avg_table(), line::ctmc::solver_ctmc_fes_aggregation(), line::mam::solver_mam_run_analyzer(), line::mva::solver_mva_run_analyzer(), line::nc::solver_nc_run_analyzer(), line::qns::solver_qns_run_analyzer(), line::tr::transform_solve_chains(), line::tr::transform_solve_lc(), and line::uq::uq_aggregate().
| std::optional<bool> line::mva::AvgResult< T >::converged |
Whether the fixed point met its tolerance, empty when the handler reports none.
Carried beside iter because the count alone cannot decide it on the AMVA route, where it aggregates the nested inner sweeps and reaches the cap on solves whose outer residual is exactly zero. A caller that reads the count as a convergence test raises false warnings; that is why the flag exists and why it has to reach the CLI envelope.
Definition at line 94 of file solver_mva_runner.h.
Referenced by line::mva::solver_mva_run_analyzer().
| int line::mva::AvgResult< T >::iter = 0 |
Definition at line 85 of file solver_mva_runner.h.
Referenced by line::ag::solver_ag_run_analyzer(), line::ba::solver_ba_run_analyzer(), line::ctmc::solver_ctmc_avg_table(), line::mam::solver_mam_run_analyzer(), line::mva::solver_mva_run_analyzer(), line::nc::solver_nc_run_analyzer(), line::qns::solver_qns_run_analyzer(), and line::tr::transform_solve_lc().
| std::vector<T> line::mva::AvgResult< T >::listcost |
(h) mean storage cost held by each cache list, K_j = sum_i sigma_i pi_ij, filled only by the NC cache branch on a model with item sizes; EMPTY otherwise.
See ton21cache Sec. IX and [[09-ldes-and-cache]].
Definition at line 84 of file solver_mva_runner.h.
Referenced by line::nc::solver_nc_run_analyzer().
| std::optional<double> line::mva::AvgResult< T >::lognormconst |
@@SolverNC/getProbNormConstAggr, i.e.
the reference's result.Prob.logNormConstAggr, filled by the NC runner alone and EMPTY for every other solver.
It sits here for listcost's reason: it is a statement about the solve that only one solver can make, and the alternative – calling solver_nc_solve a second time to recover it – would solve the model twice for one number. Absent is not zero: log G = 0 is the constant of an empty network, so a caller must test the option rather than the value.
Definition at line 106 of file solver_mva_runner.h.
Referenced by line::nc::solver_nc_run_analyzer().
| std::string line::mva::AvgResult< T >::method |
the method asked for
Definition at line 65 of file solver_mva_runner.h.
Referenced by line::solvers::avg_result_from_sim(), line::ag::solver_ag_run_analyzer(), line::ba::solver_ba_run_analyzer(), line::ctmc::solver_ctmc_avg_table(), line::ctmc::solver_ctmc_fes_aggregation(), line::mam::solver_mam_run_analyzer(), line::mva::solver_mva_run_analyzer(), line::nc::solver_nc_run_analyzer(), line::qns::solver_qns_run_analyzer(), line::tr::transform_solve_chains(), and line::tr::transform_solve_lc().
| Matrix<T> line::mva::AvgResult< T >::QN |
queue length
Definition at line 57 of file solver_mva_runner.h.
Referenced by line::solvers::avg_result_from_sim(), line::ba::ba_bounds(), line::solvers::node_metrics(), line::ag::solver_ag_run_analyzer(), line::ba::solver_ba_run_analyzer(), line::ctmc::solver_ctmc_avg_table(), line::ctmc::solver_ctmc_fes_aggregation(), line::solvers::solver_get_avg_chain(), line::mam::solver_mam_run_analyzer(), line::mva::solver_mva_get_prob_aggr(), line::mva::solver_mva_get_prob_marg(), line::mva::solver_mva_get_prob_sys_aggr(), line::mva::solver_mva_run_analyzer(), line::nc::solver_nc_run_analyzer(), line::qns::solver_qns_run_analyzer(), line::tr::transform_solve_chains(), line::tr::transform_solve_lc(), line::uq::uq_aggregate(), line::uq::uq_interval_by_sampling(), and line::uq::uq_metric_matrix().
| std::shared_ptr<qn::NetworkStruct<T> > line::mva::AvgResult< T >::refreshed_struct |
The struct whose cache self-switch carries the CONVERGED hit/miss split, filled by the cacheqn branches and NULL for every other model.
It has to travel with the result because the split is a SOLVER OUTPUT, not model structure: link() leaves the self-switch at the offered 1/2-1/2, and every quantity derived from a visit ratio – ArvR, ResidT, and the node-level hit and miss throughputs – is wrong by that ratio until the solve replaces it. The runner already uses this struct for the STATION table (see refL below); handing the caller the base struct instead makes -a avg and -a node disagree on one column of one model, which is the divergence node_metrics exists to avoid. Measured on cache_replc_routing: Cache/Router/Sink hit and miss read 1/1 off the base struct against 0.8/1.2.
Definition at line 127 of file solver_mva_runner.h.
Referenced by line::solvers::node_metrics(), and line::mva::solver_mva_run_analyzer().
| Matrix<T> line::mva::AvgResult< T >::RN |
response time, per visit
Definition at line 59 of file solver_mva_runner.h.
Referenced by line::solvers::avg_result_from_sim(), line::solvers::node_metrics(), line::ag::solver_ag_run_analyzer(), line::ba::solver_ba_run_analyzer(), line::ctmc::solver_ctmc_avg_table(), line::ctmc::solver_ctmc_fes_aggregation(), line::solvers::solver_get_avg_chain(), line::solvers::solver_get_avg_sys(), line::mam::solver_mam_run_analyzer(), line::mva::solver_mva_run_analyzer(), line::nc::solver_nc_run_analyzer(), line::qns::solver_qns_run_analyzer(), line::tr::transform_solve_chains(), line::tr::transform_solve_lc(), line::uq::uq_aggregate(), line::uq::uq_interval_by_sampling(), and line::uq::uq_metric_matrix().
| Matrix<T> line::mva::AvgResult< T >::TN |
throughput
Definition at line 60 of file solver_mva_runner.h.
Referenced by line::solvers::avg_result_from_sim(), line::ba::ba_bounds(), line::solvers::node_metrics(), line::ag::solver_ag_run_analyzer(), line::ba::solver_ba_run_analyzer(), line::ctmc::solver_ctmc_avg_table(), line::ctmc::solver_ctmc_fes_aggregation(), line::solvers::solver_get_avg_chain(), line::solvers::solver_get_avg_sys(), line::mam::solver_mam_run_analyzer(), line::mva::solver_mva_run_analyzer(), line::nc::solver_nc_run_analyzer(), line::qns::solver_qns_run_analyzer(), line::tr::transform_solve_chains(), line::tr::transform_solve_lc(), line::uq::uq_aggregate(), line::uq::uq_interval_by_sampling(), and line::uq::uq_metric_matrix().
| Matrix<T> line::mva::AvgResult< T >::UN |
utilization
Definition at line 58 of file solver_mva_runner.h.
Referenced by line::solvers::avg_result_from_sim(), line::solvers::node_metrics(), line::ag::solver_ag_run_analyzer(), line::ba::solver_ba_run_analyzer(), line::ctmc::solver_ctmc_avg_table(), line::ctmc::solver_ctmc_fes_aggregation(), line::solvers::solver_get_avg_chain(), line::mam::solver_mam_run_analyzer(), line::mva::solver_mva_get_prob_aggr(), line::mva::solver_mva_get_prob_marg(), line::mva::solver_mva_get_prob_sys_aggr(), line::mva::solver_mva_run_analyzer(), line::nc::solver_nc_run_analyzer(), line::qns::solver_qns_run_analyzer(), line::tr::transform_solve_chains(), line::tr::transform_solve_lc(), line::uq::uq_aggregate(), line::uq::uq_interval_by_sampling(), and line::uq::uq_metric_matrix().
| std::string line::mva::AvgResult< T >::warning |
The reference's own warning text, verbatim, empty when it did not warn.
It belongs beside actualmethod because it is the same kind of thing: a statement about HOW the numbers were produced rather than a metric. It is carried, not thrown, because the answer is usable – the SJN starvation cap leaves the population law exact and only the ACCURACY unwarranted, which is solver_nc_cdf.h:83's precedent, not solver_mam_retrial.h:437's. Dropping it silently is worse than a wrong number: the answer then looks authoritative exactly where the reference declines to stand behind it.
Definition at line 78 of file solver_mva_runner.h.
Referenced by line::mva::solver_mva_run_analyzer(), and line::nc::solver_nc_run_analyzer().
| Matrix<T> line::mva::AvgResult< T >::WN |
residence time, per job
Definition at line 62 of file solver_mva_runner.h.
Referenced by line::solvers::avg_result_from_sim(), line::solvers::node_metrics(), line::ag::solver_ag_run_analyzer(), line::ba::solver_ba_run_analyzer(), line::ctmc::solver_ctmc_avg_table(), line::ctmc::solver_ctmc_fes_aggregation(), line::solvers::solver_get_avg_chain(), line::mam::solver_mam_run_analyzer(), line::mva::solver_mva_run_analyzer(), line::nc::solver_nc_run_analyzer(), line::qns::solver_qns_run_analyzer(), line::tr::transform_solve_chains(), line::tr::transform_solve_lc(), line::uq::uq_aggregate(), line::uq::uq_interval_by_sampling(), and line::uq::uq_metric_matrix().
| std::vector<T> line::mva::AvgResult< T >::XN |
system throughput per class
Definition at line 64 of file solver_mva_runner.h.
Referenced by line::solvers::avg_result_from_sim(), line::ag::solver_ag_run_analyzer(), line::ba::solver_ba_run_analyzer(), line::ctmc::solver_ctmc_avg_table(), line::ctmc::solver_ctmc_fes_aggregation(), line::mam::solver_mam_run_analyzer(), line::mva::solver_mva_run_analyzer(), line::nc::solver_nc_run_analyzer(), line::qns::solver_qns_run_analyzer(), line::tr::transform_solve_chains(), line::tr::transform_solve_lc(), and line::uq::uq_aggregate().