![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Method of Layers on the SRVN decomposition of a layered queueing network whose entries carry no activity graph. More...
#include <algorithm>#include <cmath>#include <cstddef>#include <limits>#include <set>#include <string>#include <vector>#include "line/api/pfqn/pfqn_qdamva.h"#include "line/lang/lqn/lqn_struct.h"#include "line/num/number.h"#include "line/util/error.h"#include "line/util/matrix.h"Go to the source code of this file.
Classes | |
| struct | line::lqn::LqnMolInfo< T > |
| Everything lqn_mol reports beyond the four measure vectors. More... | |
| struct | line::lqn::LqnMolResult< T > |
| The four (nidx+1) vectors in the column convention SolverLN and LQNS report, so they line up with LN(model).getAvgTable cell for cell. More... | |
| struct | line::lqn::LqnMolOptions |
| Tuning of the outer fixed point. More... | |
Namespaces | |
| namespace | line |
| namespace | line::lqn |
Functions | |
| template<class T> | |
| LqnMolResult< T > | line::lqn::lqn_mol (const LqnStruct< T > &lsn, const LqnMolOptions &options=LqnMolOptions()) |
| Method of Layers on the SRVN decomposition of a layered queueing network whose entries carry no activity graph. | |
Method of Layers on the SRVN decomposition of a layered queueing network whose entries carry no activity graph.
Port of matlab/src/api/lqn/lqn_mol.m. A compact, self-contained reimplementation of the layered fixed point SolverLN runs, restricted to LQNs in which every entry binds exactly one activity and there are no activity precedences. It decomposes the model the way lqns --srvn-layering does – one submodel per processor and one per called task – and sweeps them in the two phases of Rolia-Sevcik's Method of Layers: all software (task) submodels, then all hardware (processor) ones.
Every submodel is a closed multiclass queueing network with ONE station and one class per client task, so it is solved by pfqn_qdamva rather than by building a Network. The surrogate client delay of SolverLN collapses into the think-time vector Z of that call.
WHERE THIS DIFFERS FROM SolverLN's srvn.cs: a submodel here carries one class per client TASK with visit-weighted demands, where srvn.cs carries one class per activity and encodes the call multiplicities as routing. On an entry-only model the two agree on the structure and differ only in the aggregation, so the throughputs and processor utilizations track closely while entry response times spread more.
SCOPE. Entry-only models. Activity graphs (fork/join, OR-branches, loops, second phases, forwarding), asynchronous calls, caches, setup tasks, admission constraints, replication and open arrivals are REFUSED, not approximated, and named when they are.
Arithmetic: TRANSCENDENTAL-GATED, inherited from pfqn_qdamva.
Definition in file lqn_mol.h.