2 % @brief Maximum throughput
for Split-Merge queueing system
4 % @author LINE Development Team
8 % @brief Maximum throughput
for Split-Merge queueing system
11 % Computes the maximum throughput
for a K-way Split-Merge (SM) queueing
12 % system with exponential service times.
14 % In an SM system, all tasks of a request must complete before the next
15 % request can be issued. The maximum throughput
is:
17 % lambda_K^SM = 1 / X_K^max = mu / H_K
19 % where X_K^max = H_K / mu
is the expected maximum service time.
21 % For comparison, the maximum throughput of a K-way F/J system
is
22 % lambda_K^FJ = mu, which exceeds lambda_K^SM by a factor H_K.
26 % lambda_max = fj_sm_tput(K, mu)
31 % <tr><th>Name<th>Description
32 % <tr><td>K<td>Number of parallel servers (positive integer)
33 % <tr><td>mu<td>Service rate at each server
38 % <tr><th>Name<th>Description
39 % <tr><td>lambda_max<td>Maximum throughput lambda_K^SM = mu / H_K
43 % A. Thomasian,
"Analysis of Fork/Join and Related Queueing Systems",
44 % ACM Computing Surveys, Vol. 47, No. 2, Article 17, July 2014.
47function lambda_max = fj_sm_tput(K, mu)
50 line_error(mfilename,
'K must be a positive integer. Got K=%d.', K);
54 line_error(mfilename,
'Service rate mu must be positive. Got mu=%.4f.', mu);
57% Compute harmonic number H_K
60% Maximum throughput: lambda_K^SM = mu / H_K = 1 / X_K^max