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

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

Detailed Description

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.

Member Data Documentation

◆ act

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.

◆ act_t0

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.

◆ branch

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.

◆ call_pos

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.

◆ calls_left

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.

◆ dem_done

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.

◆ fork_id

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.

◆ hcol

int line::ldes::engine::LnLine::hcol = -1

host admission column held, -1 = none

Definition at line 201 of file ldes_ln_engine.h.

◆ host_end

double line::ldes::engine::LnLine::host_end = 0.0

Definition at line 219 of file ldes_ln_engine.h.

◆ host_gen

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.

◆ host_rem

double line::ldes::engine::LnLine::host_rem = -1.0

Definition at line 217 of file ldes_ln_engine.h.

◆ host_start

double line::ldes::engine::LnLine::host_start = 0.0

Definition at line 218 of file ldes_ln_engine.h.

◆ host_t0

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.

◆ inv

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.

◆ pcol

int line::ldes::engine::LnLine::pcol = -1

operand column at a pooled host

Definition at line 202 of file ldes_ln_engine.h.

◆ remaining

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.

◆ siro_key

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.


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