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

Horizontal-cut mean value analysis for a MAP server (SolverMVA method 'amva.mapqn'). More...

#include <algorithm>
#include <cmath>
#include <cstddef>
#include <vector>
#include "line/num/number.h"
#include "line/util/error.h"
#include "line/util/matrix.h"
Include dependency graph for mapqn_amva.h:

Go to the source code of this file.

Classes

struct  line::mapqn::MapqnAmvaResult< T >
 X: class throughputs; Qq: mean queue lengths at the MAP station (job in service included); U: busy probability per class, X E[S]; ES: mean service times; pi: joint phase law at N (class R fastest). More...

Namespaces

namespace  line
namespace  line::mapqn

Functions

template<class T>
MapqnAmvaResult< T > line::mapqn::mapqn_amva (const std::vector< T > &mu_in, const std::vector< Matrix< T > > &D0s, const std::vector< Matrix< T > > &D1s, const std::vector< int > &N)

Detailed Description

Horizontal-cut mean value analysis for a MAP server (SolverMVA method 'amva.mapqn').

Closed multiclass network of an exponential infinite-server station (think rate mu_r for class r) and one FCFS single-server station whose class-r service is the MAP (D0_r, D1_r); the MAP of class r moves only while a class-r job is in service and is frozen otherwise, the convention of the CTMC solver. The recursion walks the population lattice n <= N in lexicographic order and solves ONE linear R x R system per point. Its unknowns are the per-phase means Q_r^k = E[n_r 1{k}] over the joint phase k = (k_1..k_R), the busy laws U_r^k = P[serving r, k], the phase law pi_k and the throughputs X_r.

Exact relations: the joint phase balance, the class marginals U_r = X_r E[S_r] theta_r and the per-class horizontal cut (generator balance of n_r 1{k}) of Casale-Smirni, "MAP-AMVA: Approximate Mean Value Analysis of Bursty Systems", IEEE/IFIP DSN 2009. Closures: the product busy law theta_r(k_r) prod_{s != r} phi_s(k_s), phi the post-completion law of a frozen MAP, which solves the phase balance identically; the service-age closure of the cross term E[n_r 1{serving s} 1{k}] (class r accumulates at its throughput over the elapsed class-s service, whose mean given the phase is theta_s (-D0_s)^{-1} / theta_s); Little's law resolved by arrival phase with the exact FCFS response of the queue composition seen at n - e_r (the multiclass arrival theorem). K_r = 1 for every class reproduces multiclass FCFS MVA on class means.

Port of matlab/src/api/mapqn/mapqn_amva.m; the arithmetic is done in double whatever T, since the recursion interpolates response tables at fractional populations.

Definition in file mapqn_amva.h.