2 % @brief Upper and lower bounds
for K-way F/J response time
4 % @author LINE Development Team
8 % @brief Upper and lower bounds
for K-way F/J response time
11 % Computes pessimistic (upper) and optimistic (lower) bounds
for the
12 % mean response time of a K-way Fork-Join queueing system.
14 % Upper bound (pessimistic):
15 % R_K^max(rho) = H_K / (mu * (1 - rho)) = H_K * R(rho)
17 % Lower bound (optimistic) from Varki et al.:
18 % R_K^{F/J(opt)}(rho) = (1/mu) * [H_K + S_{K(K-rho)}]
19 % where S_{K(K-rho)} = sum_{j=1}^{K} (1/j) * (rho/(j - rho))
21 % The bounds satisfy: R_K^{F/J(opt)}(rho) <= R_K^{F/J}(rho) <= R_K^max(rho)
25 % [Rmax, Rmin] = fj_bounds(K, lambda, mu)
30 % <tr><th>Name<th>Description
31 % <tr><td>K<td>Number of parallel servers (positive integer)
32 % <tr><td>lambda<td>Arrival rate
33 % <tr><td>mu<td>Service rate (mu > lambda
for stability)
38 % <tr><th>Name<th>Description
39 % <tr><td>Rmax<td>Upper bound (pessimistic): R_K^max(rho)
40 % <tr><td>Rmin<td>Lower bound (optimistic): R_K^{F/J(opt)}(rho)
44 % A. Thomasian,
"Analysis of Fork/Join and Related Queueing Systems",
45 % ACM Computing Surveys, Vol. 47, No. 2, Article 17, July 2014.
46 % Eq. (1) and Eq. (2) on page 17:9.
48function [Rmax, Rmin] = fj_bounds(K, lambda, mu)
51 line_error(mfilename,
'K must be a positive integer. Got K=%d.', K);
58 line_error(mfilename,
'System is unstable: rho = lambda/mu = %.4f >= 1. Require lambda < mu.', rho);
61% Compute harmonic number H_K
64% Upper bound (Eq. 1): R_K^max(rho) = H_K / (mu * (1 - rho))
65Rmax = H_K / (mu * (1 - rho));
67% Lower bound (Eq. 2): R_K^{F/J(opt)}(rho) = (1/mu) * [H_K + S_{K(K-rho)}]
68% where S_{K(K-rho)} = sum_{j=1}^{K} (1/j) * (rho/(j - rho))
69S_K = sum((1 ./ (1:K)) .* (rho ./ ((1:K) - rho)));
70Rmin = (1 / mu) * (H_K + S_K);