![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
One LINE of execution: a point in the activity graph of one invocation. More...
#include <line/solvers/ldes/ldes_ln_engine.h>
Public Attributes | |
| std::size_t | inv = LN_NONE |
| the invocation this line belongs to | |
| std::size_t | act = 0 |
| current activity, 0 for an entry with none | |
| double | act_t0 = -1.0 |
| When the current activity began, -1 before it is reached. | |
| std::size_t | call_pos = 0 |
| next call index of the current activity | |
| std::size_t | calls_left = static_cast<std::size_t>(-1) |
| Repetitions of the current call still to be made; NOTDRAWN until drawn. | |
| double | host_t0 = 0.0 |
| when the line asked its processor, queueing included | |
| bool | branch = false |
| a line an AND fork created (never the root) | |
| std::uint64_t | fork_id = 0 |
| The AND fork instance that created this line, from one engine-wide counter; 0 for the root. | |
| int | hcol = -1 |
| host admission column held, -1 = none | |
| int | pcol = -1 |
| operand column at a pooled host | |
| double | remaining = 0.0 |
| work left at a pooled or PS host | |
| double | siro_key = 0.0 |
| uniform key in a SIRO host queue; the smallest is served next | |
| int | dem_done = 0 |
| How far the current activity is before its calls: 0 nothing started, 1 host demand started or none, 2 think time started or none. | |
| std::uint64_t | host_gen = 0 |
| Host service in progress at a queueing host. | |
| double | host_rem = -1.0 |
| double | host_start = 0.0 |
| double | host_end = 0.0 |
One LINE of execution: a point in the activity graph of one invocation.
A sequential invocation has one line, its root. An AND fork gives it one line per branch, all holding the SAME thread of the invocation, and the join resumes the root; that is LNRequest.copyWith of Solver_ssj_ln.
Definition at line 178 of file ldes_ln_engine.h.
| std::size_t line::ldes::engine::LnLine::act = 0 |
current activity, 0 for an entry with none
Definition at line 180 of file ldes_ln_engine.h.
| double line::ldes::engine::LnLine::act_t0 = -1.0 |
When the current activity began, -1 before it is reached.
Its span runs to its host completion, so it CARRIES THE NESTED CALLS it makes.
Definition at line 185 of file ldes_ln_engine.h.
| bool line::ldes::engine::LnLine::branch = false |
a line an AND fork created (never the root)
Definition at line 194 of file ldes_ln_engine.h.
| std::size_t line::ldes::engine::LnLine::call_pos = 0 |
next call index of the current activity
Definition at line 186 of file ldes_ln_engine.h.
| std::size_t line::ldes::engine::LnLine::calls_left = static_cast<std::size_t>(-1) |
Repetitions of the current call still to be made; NOTDRAWN until drawn.
calls-mean is drawn once when the call is first reached, so a call of mean 3 blocks three times per execution of the activity.
Definition at line 192 of file ldes_ln_engine.h.
| int line::ldes::engine::LnLine::dem_done = 0 |
How far the current activity is before its calls: 0 nothing started, 1 host demand started or none, 2 think time started or none.
Definition at line 209 of file ldes_ln_engine.h.
| std::uint64_t line::ldes::engine::LnLine::fork_id = 0 |
The AND fork instance that created this line, from one engine-wide counter; 0 for the root.
A quorum join discards its late inputs by (input activity, fork instance), so the straggler of one round is never mistaken for an input of the next round of the same join.
Definition at line 200 of file ldes_ln_engine.h.
| int line::ldes::engine::LnLine::hcol = -1 |
host admission column held, -1 = none
Definition at line 201 of file ldes_ln_engine.h.
| double line::ldes::engine::LnLine::host_end = 0.0 |
Definition at line 219 of file ldes_ln_engine.h.
| std::uint64_t line::ldes::engine::LnLine::host_gen = 0 |
Host service in progress at a queueing host.
The completion event carries host_gen, drawn from one engine-wide counter because lines are recycled, so a preemption cancels it by drawing a new one. host_rem is the work left when service (re)starts, negative meaning "draw the demand": a fresh request or a PI victim.
Definition at line 216 of file ldes_ln_engine.h.
| double line::ldes::engine::LnLine::host_rem = -1.0 |
Definition at line 217 of file ldes_ln_engine.h.
| double line::ldes::engine::LnLine::host_start = 0.0 |
Definition at line 218 of file ldes_ln_engine.h.
| double line::ldes::engine::LnLine::host_t0 = 0.0 |
when the line asked its processor, queueing included
Definition at line 193 of file ldes_ln_engine.h.
| std::size_t line::ldes::engine::LnLine::inv = LN_NONE |
the invocation this line belongs to
Definition at line 179 of file ldes_ln_engine.h.
| int line::ldes::engine::LnLine::pcol = -1 |
operand column at a pooled host
Definition at line 202 of file ldes_ln_engine.h.
| double line::ldes::engine::LnLine::remaining = 0.0 |
work left at a pooled or PS host
Definition at line 203 of file ldes_ln_engine.h.
| double line::ldes::engine::LnLine::siro_key = 0.0 |
uniform key in a SIRO host queue; the smallest is served next
Definition at line 204 of file ldes_ln_engine.h.