4 % @brief Server-
Station Disaggregation throughput bounds (Suri-Dallery 1986)
5 %
for single-
class closed networks with multiserver stations.
9function [Xlo,Xhi] = pfqn_ssd(L,N,Z,nservers)
12 % @brief SSD multiserver bounds (SIGMETRICS 1986, Theorem 5). Each C_k-server
13 % station of loading L_k
is bracketed by disaggregations: C_k balanced
14 % single-server stations of loading L_k/C_k (lower) and one single
15 % server of loading L_k/C_k (upper). With R_l=sum L_k, Y_l=max L_k/C_k,
16 % R_u=sum L_k/C_k, Y_u=R_u/K:
17 % X_l = N/(R_l+(N-1)Y_l) <= X(N) <= N/(R_u+(N-1)Y_u) = X_u,
18 %
the upper bound taken jointly with
the ABA bound min(N/R_l, C_b/L_b).
19 % O(K) cost, same order as BJB on single-server networks.
20 % @fn pfqn_ssd(L, N, Z, nservers)
21 % @param L Service demand vector (M x 1).
22 % @param N Population (scalar).
23 % @param Z Think time (scalar,
default 0).
24 % @param nservers Per-station server counts C_k (M x 1,
default all 1).
25 % @
return Xlo Lower throughput bound (Theorem 5).
26 % @
return Xhi Upper throughput bound (Theorem 5, joint with ABA).
31if nargin < 3 || isempty(Z), Z = 0; end
32if nargin < 4 || isempty(nservers), nservers = ones(K,1); end
34if isscalar(C), C = C*ones(K,1); end
36Rl = sum(L); Yl = max(L./C);
37Ru = sum(L./C); Yu = Ru/K;
40Xlo = N/(Rl + Z + (N-1)*Yl);
41Xhi = min([ N/(Ru + Z + (N-1)*Yu), ... % Theorem 5 upper
42 C(b)/L(b), ... % ABA capacity bound (eq. 3)
43 N/(Rl + Z) ]); % ABA population bound