![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
The knobs of one LDES run. More...
#include <line/solvers/wrappers/ldes/ldes_options.h>
Public Attributes | |
| std::size_t | samples = 200000 |
| -s, service-completion budget | |
| std::size_t | events = 0 |
| 0 = not given; overrides samples when set | |
| long | seed = 23000 |
| –seed; -1 requests a random stream | |
| std::string | method = "default" |
| bool | cnvgon = false |
| –cnvgon | |
| double | cnvgtol = 0.05 |
| –cnvgtol | |
| int | cnvgbatch = 20 |
| –cnvgbatch, batches before the first check | |
| int | cnvgchk = 0 |
| –cnvgchk, events between checks; 0 = samples/50 | |
| std::string | tranfilter = "mser5" |
| –tranfilter: mser5 | fixed | none | |
| int | mserbatch = 5 |
| –mserbatch, MSER batch size | |
| double | warmupfrac = 0.2 |
| –warmupfrac, only for tranfilter=fixed | |
| int | tranobs = 0 |
| –tranobs, equally spaced transient observation points over [t0,t1]; fixes the time grid only. | |
| std::string | cimethod = "obm" |
| –cimethod: obm | bm | spectral | none | |
| double | obmoverlap = 0.5 |
| –obmoverlap; 0 reduces OBM to plain batch means | |
| int | ciminbatch = 10 |
| –ciminbatch | |
| int | ciminobs = 100 |
| –ciminobs, below which no CI is reported | |
| double | confint = 0.95 |
| Confidence level of the reported half-widths. | |
| double | spectral_low_freq_frac = 0.25 |
| –spectrallowfreqfrac | |
| double | run_length_plan_precision = 0.0 |
| options.config.runLengthPlan: ask for the run length this run SHOULD have had, for a target relative precision. | |
| bool | slotted = false |
| –slotted, run on the slot lattice | |
| double | slot_length = 1.0 |
| –slotlength | |
| int | busy_period_orders = 0 |
| –busyperiod: highest busy period order measured, 0 disabling the measurement. | |
| std::vector< std::vector< std::size_t > > | busy_period_subnets |
| –busyperiod-subnet, zero-based station indexes, one flag per set. | |
| int | replications = 0 |
| –replications; 0 = not given (one path) | |
| int | numthreads = 0 |
| –numthreads; 0 = not given | |
| bool | has_timespan = false |
| true when [t0,t1] was set: a TRANSIENT run | |
| double | t0 = 0.0 |
| double | t1 = 0.0 |
| double | timeout = std::numeric_limits<double>::infinity() |
| –maxtime, a COOPERATIVE wall-clock budget the event loop polls. | |
| std::vector< double > | init_sol |
| –initsol, the warm-start placement as a STATION-MAJOR vector [st0_cl0, st0_cl1, ..., stM-1_clK-1]. | |
| Matrix< double > | init_jobs |
| –initjobs, the JOB-LEVEL initial state, one row per job: [station, class, remaining, elapsed, qage, sage, order, id]. | |
| bool | track_jobs = false |
| –trackjobs: fill finalJobs and jobDepartures; implied by init_jobs. | |
| bool | export_histogram = false |
| –export-histogram and –trajectory: the joint-state residence-time law and the state path. | |
| bool | export_trajectory = false |
| bool | export_respt = false |
| –respt-samples: every per-visit response time, not just its mean. | |
| std::string | rest_url |
| Base URL of an LDES REST server (the imperialqore/ldes container). | |
| bool | verbose = false |
| echo the resolved command line before running it | |
The knobs of one LDES run.
samples is an EVENT BUDGET (service completions), not a sample size in the statistical sense, and events is the same budget under the name the newer API uses: when set it overrides samples, as it does in both clients.
Definition at line 66 of file ldes_options.h.
| int line::ldes::LdesOptions::busy_period_orders = 0 |
–busyperiod: highest busy period order measured, 0 disabling the measurement.
A busy period of order n for a set of stations runs from the instant an arrival raises the jobs it holds to n up to the instant it falls back below n (Daduna, J. ACM 35(3), 1988). When positive the orders 1..busy_period_orders are measured for every station, for every station-class pair, and for every set in busy_period_subnets.
Definition at line 126 of file ldes_options.h.
Referenced by line::ldes::ldes_flags().
| std::vector<std::vector<std::size_t> > line::ldes::LdesOptions::busy_period_subnets |
–busyperiod-subnet, zero-based station indexes, one flag per set.
Definition at line 128 of file ldes_options.h.
Referenced by line::ldes::ldes_flags().
| std::string line::ldes::LdesOptions::cimethod = "obm" |
–cimethod: obm | bm | spectral | none
Definition at line 87 of file ldes_options.h.
Referenced by line::ldes::engine::batch_means_ci(), line::ldes::engine::ci_statistics(), line::ldes::ldes_engine_solve(), and line::ldes::ldes_flags().
| int line::ldes::LdesOptions::ciminbatch = 10 |
–ciminbatch
Definition at line 89 of file ldes_options.h.
Referenced by line::ldes::engine::batch_means_ci(), and line::ldes::ldes_flags().
| int line::ldes::LdesOptions::ciminobs = 100 |
–ciminobs, below which no CI is reported
Definition at line 90 of file ldes_options.h.
Referenced by line::ldes::engine::batch_means_ci(), and line::ldes::ldes_flags().
| int line::ldes::LdesOptions::cnvgbatch = 20 |
–cnvgbatch, batches before the first check
Definition at line 75 of file ldes_options.h.
Referenced by line::ldes::engine::Convergence::init(), and line::ldes::ldes_flags().
| int line::ldes::LdesOptions::cnvgchk = 0 |
–cnvgchk, events between checks; 0 = samples/50
Definition at line 76 of file ldes_options.h.
Referenced by line::ldes::engine::Convergence::init(), and line::ldes::ldes_flags().
| bool line::ldes::LdesOptions::cnvgon = false |
–cnvgon
Definition at line 73 of file ldes_options.h.
Referenced by line::ldes::engine::Convergence::init(), and line::ldes::ldes_flags().
| double line::ldes::LdesOptions::cnvgtol = 0.05 |
–cnvgtol
Definition at line 74 of file ldes_options.h.
Referenced by line::ldes::engine::Convergence::init(), and line::ldes::ldes_flags().
| double line::ldes::LdesOptions::confint = 0.95 |
Confidence level of the reported half-widths.
LDESOptions sets 0.95 where the shared SolverOptions leaves it at 0 (disabled), so the LDES default is intervals ON. It is not a CLI flag: the engine reads it from the options object, so the subprocess client has no way to vary it and the native engine keeps the same default.
Definition at line 99 of file ldes_options.h.
Referenced by line::ldes::engine::batch_means_ci(), line::ldes::engine::Convergence::init(), and line::ldes::ldes_engine_solve().
| std::size_t line::ldes::LdesOptions::events = 0 |
0 = not given; overrides samples when set
Definition at line 68 of file ldes_options.h.
Referenced by line::ldes::engine::batch_means_ci(), line::ldes::ldes_engine_solve(), line::ldes::ldes_engine_solve_one(), line::ldes::ldes_flags(), and line::ldes::ldes_ln_engine_solve().
| bool line::ldes::LdesOptions::export_histogram = false |
–export-histogram and –trajectory: the joint-state residence-time law and the state path.
A TRANSIENT run fills both unconditionally, because it has to walk the state to produce QNt at all. In STEADY STATE they are opt-in: the histogram costs a map lookup per event and the trajectory grows one row per event, which on a million-completion run is a million rows nobody asked for.
Definition at line 177 of file ldes_options.h.
| bool line::ldes::LdesOptions::export_respt = false |
–respt-samples: every per-visit response time, not just its mean.
It is the input to an EMPIRICAL CDF, which a mean cannot stand in for, and it costs one push per completion, so it is opt-in like the two above.
Definition at line 186 of file ldes_options.h.
| bool line::ldes::LdesOptions::export_trajectory = false |
Definition at line 178 of file ldes_options.h.
| bool line::ldes::LdesOptions::has_timespan = false |
true when [t0,t1] was set: a TRANSIENT run
Definition at line 135 of file ldes_options.h.
Referenced by line::ldes::ldes_flags(), and line::ldes::solver_ldes().
| Matrix<double> line::ldes::LdesOptions::init_jobs |
–initjobs, the JOB-LEVEL initial state, one row per job: [station, class, remaining, elapsed, qage, sage, order, id].
Unlike init_sol, which gives counts only and so restarts every job with a fresh service draw, each row carries the job's residual work, so a run continues exactly where an earlier one stopped (LdesResult::finalJobs is written in this layout). remaining > 0 is used as given, -1 draws a full service time and -2 draws the residual given the attained service elapsed. qage and sage are the time already spent at the station and in the system; order ranks the jobs of a station (the first ones take the servers) and id (optional, -1 untagged) is echoed in finalJobs and jobDepartures. Takes precedence over init_sol. Supported at FCFS queues, the PS family and Delays.
Definition at line 163 of file ldes_options.h.
Referenced by line::ldes::ldes_flags().
| std::vector<double> line::ldes::LdesOptions::init_sol |
–initsol, the warm-start placement as a STATION-MAJOR vector [st0_cl0, st0_cl1, ..., stM-1_clK-1].
Empty = the engine's own default (closed jobs at their reference stations).
Definition at line 146 of file ldes_options.h.
Referenced by line::ldes::init_from_placement(), and line::ldes::ldes_flags().
| std::string line::ldes::LdesOptions::method = "default" |
Definition at line 70 of file ldes_options.h.
Referenced by line::ldes::ldes_flags().
| int line::ldes::LdesOptions::mserbatch = 5 |
–mserbatch, MSER batch size
Definition at line 80 of file ldes_options.h.
Referenced by line::ldes::ldes_flags().
| int line::ldes::LdesOptions::numthreads = 0 |
–numthreads; 0 = not given
Definition at line 132 of file ldes_options.h.
Referenced by line::ldes::ldes_engine_solve(), and line::ldes::ldes_flags().
| double line::ldes::LdesOptions::obmoverlap = 0.5 |
–obmoverlap; 0 reduces OBM to plain batch means
Definition at line 88 of file ldes_options.h.
Referenced by line::ldes::engine::ci_statistics(), and line::ldes::ldes_flags().
| int line::ldes::LdesOptions::replications = 0 |
–replications; 0 = not given (one path)
Definition at line 131 of file ldes_options.h.
Referenced by line::ldes::ldes_engine_solve(), and line::ldes::ldes_flags().
| std::string line::ldes::LdesOptions::rest_url |
Base URL of an LDES REST server (the imperialqore/ldes container).
When set the model is POSTed to <url>/api/v1/solve instead of being handed to a local binary; the wire format is the same on both sides, so a fixed seed gives the same numbers.
Definition at line 194 of file ldes_options.h.
Referenced by line::ldes::solver_ldes_text().
| double line::ldes::LdesOptions::run_length_plan_precision = 0.0 |
options.config.runLengthPlan: ask for the run length this run SHOULD have had, for a target relative precision.
Non-positive leaves the plan uncomputed. The half-widths above pin the ASYMPTOTIC variance of each estimator – not its stationary variance, which on M/M/1 differs from it by a factor blowing up like (1-rho)^-2 – and sim_runlength_plan turns that into the run length that reaches this precision. The plan lands in LdesResult::run_length_plan.
Definition at line 111 of file ldes_options.h.
Referenced by line::ldes::engine::batch_means_ci().
| std::size_t line::ldes::LdesOptions::samples = 200000 |
-s, service-completion budget
Definition at line 67 of file ldes_options.h.
Referenced by line::ldes::engine::batch_means_ci(), line::ldes::ldes_engine_solve(), line::ldes::ldes_engine_solve_one(), line::ldes::ldes_flags(), and line::ldes::ldes_ln_engine_solve().
| long line::ldes::LdesOptions::seed = 23000 |
–seed; -1 requests a random stream
Definition at line 69 of file ldes_options.h.
Referenced by line::ldes::ldes_engine_solve(), line::ldes::ldes_engine_solve_one(), line::ldes::ldes_flags(), and line::ldes::ldes_ln_engine_solve().
| double line::ldes::LdesOptions::slot_length = 1.0 |
–slotlength
Definition at line 115 of file ldes_options.h.
Referenced by line::ldes::ldes_engine_solve_one(), and line::ldes::ldes_flags().
| bool line::ldes::LdesOptions::slotted = false |
–slotted, run on the slot lattice
Definition at line 114 of file ldes_options.h.
Referenced by line::ldes::engine::ldes_engine_reject(), line::ldes::ldes_engine_solve_one(), and line::ldes::ldes_flags().
| double line::ldes::LdesOptions::spectral_low_freq_frac = 0.25 |
–spectrallowfreqfrac
Definition at line 100 of file ldes_options.h.
Referenced by line::ldes::engine::ci_statistics(), and line::ldes::ldes_flags().
| double line::ldes::LdesOptions::t0 = 0.0 |
Definition at line 136 of file ldes_options.h.
Referenced by line::ldes::ldes_flags().
| double line::ldes::LdesOptions::t1 = 0.0 |
Definition at line 137 of file ldes_options.h.
Referenced by line::ldes::ldes_flags().
| double line::ldes::LdesOptions::timeout = std::numeric_limits<double>::infinity() |
–maxtime, a COOPERATIVE wall-clock budget the event loop polls.
Definition at line 139 of file ldes_options.h.
Referenced by line::ldes::ldes_flags(), and line::ldes::solver_ldes_text().
| bool line::ldes::LdesOptions::track_jobs = false |
–trackjobs: fill finalJobs and jobDepartures; implied by init_jobs.
Definition at line 165 of file ldes_options.h.
Referenced by line::ldes::ldes_flags().
| std::string line::ldes::LdesOptions::tranfilter = "mser5" |
–tranfilter: mser5 | fixed | none
Definition at line 79 of file ldes_options.h.
Referenced by line::ldes::init_from_placement(), and line::ldes::ldes_flags().
| int line::ldes::LdesOptions::tranobs = 0 |
–tranobs, equally spaced transient observation points over [t0,t1]; fixes the time grid only.
0 = not given: the engine default, 1000 in both the native and the JAR engine.
Definition at line 84 of file ldes_options.h.
Referenced by line::ldes::ldes_flags().
| bool line::ldes::LdesOptions::verbose = false |
echo the resolved command line before running it
Definition at line 196 of file ldes_options.h.
Referenced by line::ldes::solver_ldes_text().
| double line::ldes::LdesOptions::warmupfrac = 0.2 |
–warmupfrac, only for tranfilter=fixed
Definition at line 81 of file ldes_options.h.
Referenced by line::ldes::init_from_placement(), and line::ldes::ldes_flags().