![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Saturation throughput of the team service model. More...
#include <cstddef>#include <vector>#include "line/api/fj/fj_types.h"#include "line/num/number.h"#include "line/util/error.h"#include "line/util/simplex.h"Go to the source code of this file.
Classes | |
| struct | line::fj::FJTsmCapacityResult< T > |
| [Lmax, Llp, Lfcfs, states, prob] of fj_tsm_capacity. More... | |
Namespaces | |
| namespace | line |
| namespace | line::fj |
Functions | |
| template<class T> | |
| FJTsmCapacityResult< T > | line::fj::fj_tsm_capacity (unsigned s, const std::vector< T > &f, const std::vector< unsigned > &r, const std::vector< T > &x) |
| Saturation throughput of the team service model. | |
Saturation throughput of the team service model.
Templated port of matlab/src/api/fj/fj_tsm_capacity.m.
A class-k job seizes r(k) of the s servers at once, holds them for a mean x(k), and releases them all together. The apparent saturation rate is
Lambda_max = s / sum_k f(k) r(k) x(k),
attainable only when the scheduler can pack jobs into execution states that leave no server idle. The attainable capacity is the largest arrival rate for which some mixture p over the feasible execution states balances every class,
maximise Lambda s.t. sum_j p_j n(j,k)/x(k) = Lambda f(k), sum_j p_j = 1, p >= 0,
over the multisets of jobs whose total server demand is at most s. The optimum equals Lambda_max exactly when every state carrying positive probability is full capacity.
For the two-server two-class case with r = (1,2), strict first come first served cannot pack at all and reaches only
lambda_FCFS = 2 mu1 mu2 / (f1^2 mu2 + 2 f2^2 mu1 + 2 f1 f2 (mu1+mu2)).
Definition in file fj_tsm_capacity.h.