LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
line::ldes::LdesOptions Struct Reference

The knobs of one LDES run. More...

#include <line/solvers/wrappers/ldes/ldes_options.h>

Collaboration diagram for line::ldes::LdesOptions:

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
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].
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

Detailed Description

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 63 of file ldes_options.h.

Member Data Documentation

◆ busy_period_orders

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 120 of file ldes_options.h.

Referenced by line::ldes::ldes_flags().

◆ busy_period_subnets

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 122 of file ldes_options.h.

Referenced by line::ldes::ldes_flags().

◆ cimethod

std::string line::ldes::LdesOptions::cimethod = "obm"

–cimethod: obm | bm | spectral | none

Definition at line 81 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().

◆ ciminbatch

int line::ldes::LdesOptions::ciminbatch = 10

–ciminbatch

Definition at line 83 of file ldes_options.h.

Referenced by line::ldes::engine::batch_means_ci(), and line::ldes::ldes_flags().

◆ ciminobs

int line::ldes::LdesOptions::ciminobs = 100

–ciminobs, below which no CI is reported

Definition at line 84 of file ldes_options.h.

Referenced by line::ldes::engine::batch_means_ci(), and line::ldes::ldes_flags().

◆ cnvgbatch

int line::ldes::LdesOptions::cnvgbatch = 20

–cnvgbatch, batches before the first check

Definition at line 72 of file ldes_options.h.

Referenced by line::ldes::engine::Convergence::init(), and line::ldes::ldes_flags().

◆ cnvgchk

int line::ldes::LdesOptions::cnvgchk = 0

–cnvgchk, events between checks; 0 = samples/50

Definition at line 73 of file ldes_options.h.

Referenced by line::ldes::engine::Convergence::init(), and line::ldes::ldes_flags().

◆ cnvgon

bool line::ldes::LdesOptions::cnvgon = false

–cnvgon

Definition at line 70 of file ldes_options.h.

Referenced by line::ldes::engine::Convergence::init(), and line::ldes::ldes_flags().

◆ cnvgtol

double line::ldes::LdesOptions::cnvgtol = 0.05

–cnvgtol

Definition at line 71 of file ldes_options.h.

Referenced by line::ldes::engine::Convergence::init(), and line::ldes::ldes_flags().

◆ confint

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 93 of file ldes_options.h.

Referenced by line::ldes::engine::batch_means_ci(), line::ldes::engine::Convergence::init(), and line::ldes::ldes_engine_solve().

◆ events

std::size_t line::ldes::LdesOptions::events = 0

◆ export_histogram

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 152 of file ldes_options.h.

◆ export_respt

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 161 of file ldes_options.h.

◆ export_trajectory

bool line::ldes::LdesOptions::export_trajectory = false

Definition at line 153 of file ldes_options.h.

◆ has_timespan

bool line::ldes::LdesOptions::has_timespan = false

true when [t0,t1] was set: a TRANSIENT run

Definition at line 129 of file ldes_options.h.

Referenced by line::ldes::ldes_flags().

◆ init_sol

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 140 of file ldes_options.h.

Referenced by line::ldes::ldes_flags().

◆ method

std::string line::ldes::LdesOptions::method = "default"

Definition at line 67 of file ldes_options.h.

Referenced by line::ldes::ldes_flags().

◆ mserbatch

int line::ldes::LdesOptions::mserbatch = 5

–mserbatch, MSER batch size

Definition at line 77 of file ldes_options.h.

Referenced by line::ldes::ldes_flags().

◆ numthreads

int line::ldes::LdesOptions::numthreads = 0

–numthreads; 0 = not given

Definition at line 126 of file ldes_options.h.

Referenced by line::ldes::ldes_flags().

◆ obmoverlap

double line::ldes::LdesOptions::obmoverlap = 0.5

–obmoverlap; 0 reduces OBM to plain batch means

Definition at line 82 of file ldes_options.h.

Referenced by line::ldes::engine::ci_statistics(), and line::ldes::ldes_flags().

◆ replications

int line::ldes::LdesOptions::replications = 0

–replications; 0 = not given (one path)

Definition at line 125 of file ldes_options.h.

Referenced by line::ldes::ldes_engine_solve(), and line::ldes::ldes_flags().

◆ rest_url

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 169 of file ldes_options.h.

Referenced by line::ldes::solver_ldes_text().

◆ run_length_plan_precision

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 105 of file ldes_options.h.

Referenced by line::ldes::engine::batch_means_ci().

◆ samples

std::size_t line::ldes::LdesOptions::samples = 200000

◆ seed

long line::ldes::LdesOptions::seed = 23000

–seed; -1 requests a random stream

Definition at line 66 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().

◆ slot_length

double line::ldes::LdesOptions::slot_length = 1.0

–slotlength

Definition at line 109 of file ldes_options.h.

Referenced by line::ldes::ldes_engine_solve_one(), and line::ldes::ldes_flags().

◆ slotted

bool line::ldes::LdesOptions::slotted = false

–slotted, run on the slot lattice

Definition at line 108 of file ldes_options.h.

Referenced by line::ldes::engine::ldes_engine_reject(), line::ldes::ldes_engine_solve_one(), and line::ldes::ldes_flags().

◆ spectral_low_freq_frac

double line::ldes::LdesOptions::spectral_low_freq_frac = 0.25

–spectrallowfreqfrac

Definition at line 94 of file ldes_options.h.

Referenced by line::ldes::engine::ci_statistics(), and line::ldes::ldes_flags().

◆ t0

double line::ldes::LdesOptions::t0 = 0.0

Definition at line 130 of file ldes_options.h.

Referenced by line::ldes::ldes_flags().

◆ t1

double line::ldes::LdesOptions::t1 = 0.0

Definition at line 131 of file ldes_options.h.

Referenced by line::ldes::ldes_flags().

◆ timeout

double line::ldes::LdesOptions::timeout = std::numeric_limits<double>::infinity()

–maxtime, a COOPERATIVE wall-clock budget the event loop polls.

Definition at line 133 of file ldes_options.h.

Referenced by line::ldes::ldes_flags(), and line::ldes::solver_ldes_text().

◆ tranfilter

std::string line::ldes::LdesOptions::tranfilter = "mser5"

–tranfilter: mser5 | fixed | none

Definition at line 76 of file ldes_options.h.

Referenced by line::ldes::ldes_flags().

◆ verbose

bool line::ldes::LdesOptions::verbose = false

echo the resolved command line before running it

Definition at line 171 of file ldes_options.h.

Referenced by line::ldes::solver_ldes_text().

◆ warmupfrac

double line::ldes::LdesOptions::warmupfrac = 0.2

–warmupfrac, only for tranfilter=fixed

Definition at line 78 of file ldes_options.h.

Referenced by line::ldes::ldes_flags().


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