LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches

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"
Include dependency graph for lqn_mol.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.

Detailed Description

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.