<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Analysis of Centralized Splitting Fork-Join Queueing Systems with Heterogeneous Servers and Threshold Control Policy</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Oleg Osipov</string-name>
          <email>oleg.alex.osipov@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Saratov State University</institution>
          ,
          <addr-line>83 Astrakhanskaya Street, Saratov 410012</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In this paper, we consider a Markovian centralized splitting fork-join queueing system with heterogeneous servers and an in nite capacity queue. Jobs arrive at the system according to a Poisson process, a job consists of multiple homogeneous tasks. Tasks of a job are served independently, when all the tasks associated with the job are nished, the job service is completed. The system operates under a threshold control policy. The control consists in sending tasks to one of idle servers or to the queue. The threshold policy uses the slow servers only when the queue length reaches certain threshold levels. We perform an exact analysis which is based on the matrix-geometric method and obtain expressions for the performance measures. Some numerical examples are presented. The results can be used for the performance analysis of multiprocessor systems and other modern distributed systems.</p>
      </abstract>
      <kwd-group>
        <kwd>Fork-Join Queueing Systems</kwd>
        <kwd>Heterogeneous Servers</kwd>
        <kwd>Thresh- old Control Policy</kwd>
        <kwd>Matrix Geometric Method</kwd>
        <kwd>Performance Measures</kwd>
        <kwd>Distributed Computing System</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Fork-join queueing systems are widely used to model parallel and distributed
systems. Some examples of these systems include RAID, distributed web
applications, MapReduce, GRID, multipath routing networks, multiprocessor systems
and etc. In these systems, arriving jobs are split for service by numerous servers
and joined before departure.</p>
      <p>
        In papers [
        <xref ref-type="bibr" rid="ref1 ref2 ref3">1,2,3</xref>
        ], fork-join queueing systems are applied to the analysis of
MapReduce clusters and multipath routing. Results on modeling of RAID arrays
and distributed databases are provided in [
        <xref ref-type="bibr" rid="ref4 ref5">4,5</xref>
        ]. Papers [
        <xref ref-type="bibr" rid="ref6 ref7">6,7</xref>
        ] describe an
application of fork-join queueing systems to the analysis of multiprocessor systems and
parallel algorithms. Fork-join queueing systems also arise in the performance
analysis of automated manufacturing systems. In these systems, parallelism can
be found in processes such as product assembly and logistic operations that
involve multiple suppliers.
      </p>
      <p>
        Paper [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] presents an overview of the main results for fork-join and related
queueing models. Most of the papers consider parallel-server fork-join queueing
systems [
        <xref ref-type="bibr" rid="ref10 ref11 ref12 ref8 ref9">8,9,10,11,12</xref>
        ].
      </p>
      <p>
        The parallel-server fork-join queueing system consists of homogeneous servers
[
        <xref ref-type="bibr" rid="ref10 ref13 ref9">9,10,13</xref>
        ] or heterogeneous servers [
        <xref ref-type="bibr" rid="ref1 ref11 ref12 ref14 ref2 ref8">1,2,8,11,12,14</xref>
        ]. An arriving job is split into
a number of tasks, one for each server. Previous research in this area reports three
basic types of parallel-server fork-join queueing systems [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], such as the
centralized splitting model, the distributed splitting model, and the split-merge model.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] upon arrival, a job of size S bringing tasks to S K of K servers is
immediately split so that each of its S tasks is allocated to exactly one server. In [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]
each job is split into a number of tasks, one for each free server. Paper [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]
considers both deterministic and probabilistic scheduling strategies. Within
probabilistic strategy, each task chooses a server with some probability. Instead, the
present paper considers the allocation of tasks between the heterogeneous servers
according to a threshold control policy. Under a threshold policy, a task is
accepted at server i if and only if the number of tasks in queue is at or above
a given threshold qi before acceptance.
      </p>
      <p>
        The threshold control policy is used as optimal solution for the job routing
problem named the slow server problem [
        <xref ref-type="bibr" rid="ref16">16,17</xref>
        ]. This problem focuses on routing
jobs to heterogeneous servers so as to minimize the average response time of jobs
or to minimize the average number of jobs in the system. As it shown in [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], the
optimal policy which minimizes the average response time of jobs in the system
with two heterogeneous servers is of threshold type, i.e., the fast server should
always be used (as long as there are jobs in the queue), and that the slower server
should only be used if the number of jobs in queue exceeds a certain threshold
value. The generalization of this rule was obtained in [17,18] for the case of
multiserver queueing system with heterogeneous servers. The optimal control policy
has the monotonicity and the threshold property, i.e., there exists a queue length
threshold such that a new server (with the minimal service cost and with the
maximal service rate) should be used only after the queue reaches this threshold.
Later, the results were extended to retrial queueing systems with heterogeneous
servers [19], systems with unreliable servers [20] and with heterogeneous servers
in speed and in quality of resolution [21].
      </p>
      <p>
        In this paper, we consider a centralized splitting fork-join queueing model [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]
with heterogeneous servers and a threshold control policy. We apply the
matrixgeometric approach to analyze the considered system. A similar approach was
used in [
        <xref ref-type="bibr" rid="ref10 ref14">10,14</xref>
        ].
      </p>
      <p>The remainder of the paper is organized as follows. Section 2 describes the
fork-join queueing system under consideration. In Sections 3 and 4 we obtain the
stationary distribution and the main performance measures. Section 5 provides
an illustration of the above results, we also discuss some control policies and
compare them. Finally, a section of conclusions commenting the main research
contributions of this paper is presented.</p>
      <p>λ
μ M</p>
    </sec>
    <sec id="sec-2">
      <title>The Model</title>
      <p>We consider a system which consists of M heterogeneous servers Si, i = 1; : : : ; M ,
and a FCFS in nite capacity queue as shown in Fig. 1. Jobs arrive at the system
according to a Poisson process with rate . Each job is split into d homogeneous
tasks, d M . An arriving task is placed in the queue. The service times at
server Si have exponential distribution with parameter i, i = 1; : : : ; M , and
1 &gt; 2 &gt; &gt; M .</p>
      <p>Let b denote the number of waiting tasks in the queue (queue length). At the
arrival times of new tasks the control consists in sending tasks from the queue
to the fastest idle server or leaving them in the queue. A task from the front
of the queue is assigned to a fastest idle server Si, i 2 f1; : : : ; M g, if the queue
length immediately after the arrival is not less than threshold level qi, i.e., qi
b + 1, (1 = q1 q2 qM &lt; qM+1 = 1).</p>
      <p>When a task nishes its service at server Si, a task from the queue will be
assigned to server Si if the queue length satis es b qi. Otherwise server Si will
be idle. Tasks of a job are served independently, when all the tasks associated
with the job are nished, the job service is completed.
3</p>
    </sec>
    <sec id="sec-3">
      <title>The Stationary Distribution</title>
      <p>The system state is described by a vector x = (r; n0; n1; : : : ; nM ), where r =
r(b) = b div d denotes the number of waiting jobs in the queue, n0 = n0(b) =
b mod d is the number of tasks for the served job in the queue,
ni =
(0; if server Si is idle,</p>
      <sec id="sec-3-1">
        <title>1; if server Si is busy.</title>
        <p>The process fx(t); t 0g is a (M + 2)-dimensional continuous-time Markov
chain on the state space X .</p>
        <p>For each state x, we denote by F (x) and F (x) the sets of idle and busy
server indices, respectively,</p>
        <p>F (x) = fi &gt; 0 : ni = 0g;</p>
        <p>F (x) = fi &gt; 0 : ni = 1g:</p>
        <p>Denote by (b) the mandatory (minimal) number of busy servers for queue
length b. We can write</p>
        <p>8&gt;0;
(b) = &lt;M;
&gt;:maxfi : qi
b = 0,
b qM ,
bg, otherwise.</p>
        <p>De ne '(x) by
'(x) =</p>
        <p>1,
(the minimal element of F (x),
if F (x) 6= ?,
otherwise.</p>
        <p>If there are idle servers in the system, a task will be assigned to server S'(x).</p>
        <p>Let us de ne now the transition rate q(x; x0) from state x 2 X to state x0 2
X . Each transition is associated with an event in the system, there are two types
of events.
1. A job arrives and splits into d tasks
(a) if b qM ,
(1)
(2)
(3)
(4)
(b) if b &lt; qM ,
q (x; (r + 1; n0; n1; : : : ; nM )) = ;</p>
        <p>q(x; x0) = ;
where x0 = x(d) can be obtained from the following recurrence relation
x(i+1) =
( r(b(i) + 1); n0(b(i) + 1); n(1i); : : : ; n(Mi) ;
x(i) + e2+'(x(i));
'(x(i)) &gt; (b(i) + 1),
otherwise,
with the initial value x(0) = x, i = 0; : : : ; d 1.</p>
        <p>Here, x(i) = r(i); n(0i); : : : ; n(Mi) and b(i) = dr(i) + n(0i); ej denotes the
vector of the appropriate dimension with all components equal to 0,
except the jth, which is 1.
2. A task nishes its service at server Si (ni = 1)
(a) if b &lt; qi,
(b) if n0 &gt; 0, fi 2 F (x) : b
i2F(x): b qi
i;
(c) if r &gt; 0, n0 = 0, fi 2 F (x) : b
q(x; (r
1; d</p>
        <p>Let state space X be lexicographically ordered. The subset Xl is called level l,
l = 0; 1; : : : , and de ned as</p>
        <p>Xl = f(r; n0; n1; : : : ; nM ) 2 X : r = lg:
The cardinality L of X0 is</p>
        <p>L = 2M + (q2
q1)2M 1 + (q3
q2)2M 2 +
+ (d
q 0 )2M
0 ;
where 0 = (d 1).</p>
        <p>Let r be the minimal number r 2 f1; 2; : : : g such that rd
nalities of Xl, l r are d.</p>
        <p>The cardinalities of Xl, 0 &lt; l &lt; r are
Kl = 2M</p>
        <p>l (q l +1
where
ld) + 2M
+ 2M
l 1(q
l++1(q +
l
l +2</p>
        <p>q l +1) +
q l+ 1) + 2M
+
+
l (ld + d
q + );
l
l = (ld);
l+ = (ld + d
1):
The system states are presented in Table 1.</p>
        <p>qM . The
cardi</p>
        <p>It is easily shown that for Xl, l &gt; 0, there are transitions to Xl 1 and Xl+1.
Thus, the Markov chain fx(t); t 0g is a quasi-birth-and-death (QBD) process,
the generator matrix Q of the process has the following form
where blocks A2, A1, A0 are square matrices of order d, B00 is the square
matrix of order L, blocks B01, B10 are L K1, K1 L matrices respectively,
Bl;l, l = 1; : : : ; r, are square matrices of order Kl (we set Kr = d), blocks
Bl;l 1, l = 2; : : : ; r, are Kl Kl 1 matrices, and blocks Bl;l+1, l = 1; : : : ; r 1,
are Kl Kl+1 matrices.</p>
        <p>The elements of matrices B01, Bl;l+1, l = 1; : : : ; r 1, and A0 are determined
by (1) and (2). The elements of matrices B10, Bl;l 1, l = 2; : : : ; r, and A2 are
determined by (5). Note that A0 = I, where I is an identity matrix of the
appropriate order; A2 is the square matrix of order d, where the (1; d)th element
of the matrix is equal to PM</p>
        <p>i=1 i, and other elements are zero.</p>
        <p>The non-diagonal elements of matrices B00, Bl;l, l = 1; : : : ; r, and A1 are
determined by (2){(4); the diagonal elements of these matrices are determined
from conditions (we set Br;r+1 = A0):
where 1 is an ones column vector of the appropriate order. Note that A1 is the
bidiagonal square matrix of order d, where the (j; j)th element of the matrix is
equal to ( + PiM=1 i), and the (j; j 1)th element is equal to PiM=1 i.</p>
        <p>It is known [22], that the QBD process is ergodic if and only if AA01 &lt;
AA21, where AA = 0, A1 = 1, A = A0 + A1 + A2. The condition implies
d &lt;
1 +
+</p>
        <p>M :</p>
        <p>The stationary distribution = ( 0; 1; : : : ) of the QBD process can be
computed using the matrix-geometric method [22]. The row vector l, l = 0; 1; : : : ,
de nes probabilities of states for level l, according to the lexicographic order,
l = ( (x) : x 2 Xl).</p>
        <p>We solve linear system Q = 0 and 1 = 1 to nd the stationary
probabilities. Taking the advantage of the block structure in Q, we obtain
0B00 +</p>
        <p>1B10 = 0;
0B01 +
1B12 +
1B11 +
2B22 +
2B21 = 0;
3B32 = 0;
: : : : : : : : : : : : : : : : : :
i 1Bi 1;i +
iBi;i +</p>
        <p>i+1Bi+1;i = 0;
: : : : : : : : : : : : : : : : : :
We know [22], the solution of (6) has the matrix-geometric form given by
r+l =</p>
        <p>l
rR ; l = 1; 2; : : : ;
where R is the minimal non-negative solution to equation A0+RA1+R2A2 = 0,
vectors 0; 1; : : : ; r satisfy
( 0; : : : ; r) BBB 0</p>
        <p>B
B@ 0</p>
        <p>0
0B00 B01 0
BB10 B11 B12</p>
        <p>B21 B22
where V is the average job service time, which is de ned as the average total
time required to process all of the tasks associated with the job once the rst
task is assigned to a server.</p>
        <p>The average number N of jobs in the system is</p>
        <p>To obtain the average job service time, we consider the service process of all
d tasks of an arbitrarily chosen \tagged" job. There are two cases considered.
1. We assume that when the rst task is assigned, the queueing system is in
a state x such that r &gt; r. Then all servers are busy, and tasks of the tagged
job sequentially occupy available servers.</p>
        <p>The service process of the tagged job is described by an absorbing Markov
chain = f (t); t 0g. Denote the state of chain by (k; S), where k
denotes the number of tasks of the tagged job in the queue, S denotes the
set of indices for busy servers that process tasks of the tagged job. State
(0; ?) is absorbing. The state space N of Markov chain is given by
d
N = [
j=1</p>
        <p>N j [f(0; ?)g;
where</p>
        <p>N j = f(k; S) : k 2 f0; 1; : : : ; d
Sj denotes the set of all j-element subsets of f1; : : : ; M g,
j ;
jg; S 2 S g
jN j =</p>
        <p>d
X j
j=1
d</p>
        <p>M
j + 1
+ 1:
The initial probability distribution de ned on state space N is given by
the vector ( 0; ), where 0 = 0(0; ?) = 0, = ( (k; S) : (k; S) 2 N n
f(0; ?)g),
(d
1; fig) = M</p>
        <p>P i
i=1</p>
        <p>i ; i = 1; : : : ; M;
and other initial probabilities are zero.</p>
        <p>Markov chain is determined by generator matrix Q
elements q ((k; S); (k0; S0))
with non-diagonal
q ((k; S); (k0; S0)) =
&gt;8 i;
&gt;&gt;&lt; i;</p>
        <p>P
&gt;
&gt;
&gt;:0;
if k0 = k = 0; S0 = S n fig; i 2 S;
if k0 = k 1</p>
        <p>0; S0 = S Sfig; i 2= S;
i2S i; if k0 = k
1</p>
        <p>0; S0 = S;
otherwise:
We denote by T the square matrix of order jN j 1 which is a submatrix of
matrix Q and contains transition rates among the transient states.
The absorption time for Markov chain is a random variable which has
a PH-distribution with PH-representation ( ; T ) [22]. The expected
absorption time is</p>
        <p>E[ ] =</p>
        <p>T 11:
2. We assume that when the rst task is assigned, the queueing system is in
a state x such that 0 r r. Then service of the tagged job starts right
after the events:
{ the job arrives,
{ a task nishes and leaves the system,
{ a job arrives and this leads to a task of the job is assigned to an idle
server.</p>
        <p>In this case, the service process of the tagged job is described by an absorbing
Markov chain = f (t); t 0g. Denote the state of chain by (k; S; x),
where k denotes the number of tasks of the tagged job in the queue, S
denotes the set of indices for busy servers that process tasks of the tagged
job, x denotes the system state, x 2 X^, X^ = fx 2 X : r rg. States
(0; ?; x), x 2 X^ are absorbing. The state space Z of Markov chain is given
by
where</p>
        <p>d 1
Z = [ Zk;</p>
        <p>k=0
Z0 =
[ f(0; S; x) : S 2 S(x; 0)g ;
x2X^
Zk =</p>
        <p>[
x2X^ : n0=k
f(k; S; x) : S 2 S(x; k)g ;
k = 1; : : : ; d
1;
S(x; k) =</p>
        <p>S</p>
        <p>F (x) : jSj + k
d :
The initial probability distribution de ned on state space Z is given by the
vector ( 0; ), where 0 = ( 0(0; ?; x) : x 2 X^) = 0, = ( (k; S; x0) :
(k; S; x0) 2 Z n Z0):</p>
        <p>0</p>
        <p>X
x2A(x0)</p>
        <p>M
(x) + X
i=1
i</p>
        <p>X
x2Di(x0)</p>
        <p>1
(x)A G 1;
x 2 X presents states from which the system moves to state x0 as a result
of a job arrival (x 2 A(x0)), or as a result of a task completion at server Si
(x 2 Di(x0)), i = 1; : : : ; M ; G denotes the normalizing constant.
The Markov chain is determined by generator matrix Q with non-diagonal
elements q ((k; S; x); (k0; S0; x0)).</p>
        <p>Suppose there is a transition from x to x0 as a result of an event
described in Section 3. So we have the corresponding transition from (k; S; x)
to (k0; S0; x0), where k0 and S0 will be described below.</p>
        <p>Assume the system moves from state x to state x0 as a result of a job
arrival, we denote by H(x; x0) = F (x0) n F (x) the index set of idle servers
which will be busy right after the event. Let H(x; x0) = fi1; i2; : : : ; img,
i1 &lt; i2 &lt; &lt; im, then Hj (x; x0) H(x; x0) denotes the j-element set</p>
      </sec>
      <sec id="sec-3-2">
        <title>Thus, we can write</title>
        <p>(a) A job arrives</p>
        <p>Hj (x; x0) = fi1; : : : ; ij g:
q ((k; S; x); (k0; S0; x0)) = ;
where k0 = max fk jH(x; x0)j; 0g, S0 = S S Hk k0 (x; x0),
(b) A task nishes its service at Si
i. if k &gt; 0, n0i = 1, i 2= S,
ii. if k &gt; 0,
iii. if k &gt; 0, n0i = 0,
iv. if k = 0,
q ((k; S; x); (k</p>
        <p>1; S [ fig; x0)) = i;
q ((k; S; x); (k
1; S; x0)) =</p>
        <p>X
i2S:n0i=1</p>
        <p>i;
q ((k; S; x); (k; S n fig; x0)) = i;
q ((0; S; x); (0; S n fig; x0)) = i:
We denote by the absorption time for Markov chain . The expected
absorption time E[ ] is computed similarly to E[ ].</p>
      </sec>
      <sec id="sec-3-3">
        <title>Finally, we have</title>
        <p>where c1 = !1, c2 =
1G,</p>
        <p>V =</p>
        <p>E[ ]c1 + E[ ]c2
c1 + c2
;
(!1; : : : ; !d) =
r(I</p>
        <p>R) 1
r
r+1</p>
        <p>M
X
i:</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Numerical Results</title>
      <p>Consider a fork-join queueing system which consists of M = 3 heterogeneous
servers, where 1 = 5, 2 = 2, 3 = 1.</p>
      <p>The performance measures depend on threshold levels qi, i = 2; : : : ; M . Let qi
be the optimal threshold levels with respect to the minimization of the average
response time T . They can be obtained by the exhaustive search method. Assume
that = 1 and d = 3, then the optimal threshold levels are q2 = 2, q3 = 8, and
T = 0:838.</p>
      <p>To illustrate the advantages of the threshold control policy, we consider the
fastest free server policy with qi = 1, i = 1; : : : ; M . Figure 2 presents the average
response times for the optimal threshold control policy and the fastest free server
policy for several values of the arrival rate .</p>
      <p>Threshold control policy
Fastest free server policy
Threshold control policy
Fastest free server policy
1.5
T
0.5
1
0
6
4
T
2
0
0.5
1
2</p>
      <p>2.5
(a)
λ
1.5
0.5
1
2</p>
      <p>2.5
λ</p>
      <p>1.5
(b)</p>
      <p>It may be seen that the optimal threshold control policy provides lower values
of the average response time T . When the arrival rate is quite large, the di
erence between the policies can be neglected. As increases, the threshold levels
decrease that leads to the fastest free server policy is near optimal one in this
case.
6</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusions</title>
      <p>We studied a Markovian fork-join queueing system with heterogeneous servers
and threshold control policy. Applying a matrix-geometric approach, we obtained
the stationary distribution of the system and performance measures. The results
can be used for the performance analysis of multiprocessor systems and other
modern distributed systems. An interesting topic for future research is to
obtain the optimal threshold control policy which minimizes the long-run average
number of jobs in the system or the average response time.
17. Rykov, V.V., Efrosinin, D.V.: On the slow server problem. Automation and Remote</p>
      <p>Control 70(12), 2013{2023 (2009). https://doi.org/10.1134/S0005117909120091
18. Rykov, V.: Monotone control of queueing systems with heterogeneous servers.</p>
      <p>Queueing Sys. 37(4), 391{403 (2001). https://doi.org/10.1023/A:1010893501581
19. Efrosinin, D., Breuer, L.: Threshold policies for controlled retrial queues
with heterogeneous servers. Ann. Oper. Res. 141, 139{162 (2006).
https://doi.org/10.1007/s10479-006-5297-5
20. Ozkan, E., Kharoufeh, J.: Optimal control of a two-server queueing system with
failures. Probability in the Engineering and Informational Sciences 28(10), 489{527
(2014). https://doi.org/10.1017/S0269964814000114
21. Legros, B., Jouini, O.: Routing in a queueing system with two heterogeneous servers
in speed and in quality of resolution. Stochastic Models 33(3), 392{410 (2017).
https://doi.org/10.1080/15326349.2017.1303615
22. He, Q.-M.: Fundamentals of Matrix-Analytic Methods. Springer, New York (2014).
https://doi.org/10.1007/978-1-4614-7330-5</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Rizk</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Poloczek</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ciucu</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Computable bounds in fork-join queueing systems</article-title>
          .
          <source>SIGMETRICS Perform. Eval. Rev</source>
          .
          <volume>43</volume>
          (
          <issue>1</issue>
          ),
          <volume>335</volume>
          {
          <fpage>346</fpage>
          (
          <year>2015</year>
          ). https://doi.org/10.1145/2796314.2745859
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>KhudaBukhsh</surname>
            ,
            <given-names>W.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rizk</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , Frommgen,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Koeppl</surname>
          </string-name>
          , H.:
          <article-title>Optimizing stochastic scheduling in fork-join queueing models: bounds and applications</article-title>
          .
          <source>In: IEEE INFOCOM</source>
          <year>2017</year>
          , pp.
          <volume>1</volume>
          {
          <issue>9</issue>
          . IEEE, New York (
          <year>2017</year>
          ). https://doi.org/10.1109/INFOCOM.
          <year>2017</year>
          .8057013
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Glushkova</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jovanovic</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Abello</surname>
            ,
            <given-names>A.:</given-names>
          </string-name>
          <article-title>MapReduce performance model for Hadoop 2</article-title>
          .x.
          <source>Information Systems</source>
          <volume>79</volume>
          ,
          <fpage>32</fpage>
          {
          <fpage>43</fpage>
          (
          <year>2019</year>
          ). https://doi.org/10.1016/j.is.
          <year>2017</year>
          .
          <volume>11</volume>
          .006
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Thomassian</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Analysis of fork/join and related queueing systems</article-title>
          .
          <source>ACM Computing Surveys</source>
          <volume>47</volume>
          (
          <issue>2</issue>
          ),
          <volume>17</volume>
          :1{
          <fpage>17</fpage>
          :
          <fpage>71</fpage>
          (
          <year>2014</year>
          ). https://doi.org/10.1145/2628913
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Joshi</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          , Liu,
          <string-name>
            <given-names>Y.</given-names>
            ,
            <surname>Soljanin</surname>
          </string-name>
          , E.:
          <article-title>On the delay-storage trade-o in content download from coded distributed storage</article-title>
          .
          <source>IEEE Journal on Selected Areas on Communications</source>
          <volume>32</volume>
          (
          <issue>5</issue>
          ),
          <volume>989</volume>
          {
          <fpage>997</fpage>
          (
          <year>2014</year>
          ). https://doi.org/10.1109/JSAC.
          <year>2014</year>
          .140518
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Heidelberger</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Trivedi</surname>
            ,
            <given-names>K.S.:</given-names>
          </string-name>
          <article-title>Analytic queueing models for programs with internal concurrency</article-title>
          .
          <source>IEEE Trans. Comp</source>
          . C-
          <volume>3</volume>
          (
          <issue>1</issue>
          ),
          <volume>73</volume>
          {
          <fpage>82</fpage>
          (
          <year>1983</year>
          ). https://doi.org/10.1109/TC.
          <year>1983</year>
          .1676125
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Gorbunova</surname>
            ,
            <given-names>A.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zaryadov</surname>
            ,
            <given-names>I.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Matyushenko</surname>
            ,
            <given-names>S.I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Samouylov</surname>
            ,
            <given-names>K.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shorgin</surname>
            ,
            <given-names>S.Ya.:</given-names>
          </string-name>
          <article-title>The approximation of response time of a cloud computing system</article-title>
          .
          <source>Informatics and Applications</source>
          <volume>9</volume>
          (
          <issue>3</issue>
          ),
          <volume>31</volume>
          {
          <fpage>38</fpage>
          (
          <year>2015</year>
          )
          <article-title>(in Russian)</article-title>
          . https://doi.org/10.14357/19922264150304
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Flatto</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hahn</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Two parallel queues created by arrivals with two demands I</article-title>
          .
          <source>SIAM Journal of Applied Mathematics</source>
          <volume>44</volume>
          (
          <issue>5</issue>
          ),
          <volume>1041</volume>
          {
          <fpage>1053</fpage>
          (
          <year>1984</year>
          ). https://doi.org/10.1137/0144074
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Nelson</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tantawi</surname>
            ,
            <given-names>A.N.</given-names>
          </string-name>
          :
          <article-title>Approximate analysis of fork/join synchronization in parallel queues</article-title>
          .
          <source>IEEE Trans. Comp</source>
          .
          <volume>37</volume>
          (
          <issue>6</issue>
          ),
          <volume>739</volume>
          {
          <fpage>743</fpage>
          (
          <year>1988</year>
          ). https://doi.org/10.1109/12.2213
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Squillante</surname>
            ,
            <given-names>M.S.</given-names>
          </string-name>
          , Zhang,
          <string-name>
            <given-names>Y.</given-names>
            ,
            <surname>Sivasubramaniam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Gautam</surname>
          </string-name>
          , N.:
          <article-title>Generalized parallel-server fork-join queues with dynamic task scheduling</article-title>
          .
          <source>Annals of Operations Research</source>
          <volume>160</volume>
          (
          <issue>1</issue>
          ),
          <volume>227</volume>
          {
          <fpage>255</fpage>
          (
          <year>2008</year>
          ). https://doi.org/10.1007/s10479-008-0312-7
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Baccelli</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Makowski</surname>
            ,
            <given-names>A.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shwartz</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>The fork-join queue and related systems with synchronization constraints: stochastic ordering and computable bounds</article-title>
          .
          <source>Adv. Appl. Probab</source>
          .
          <volume>21</volume>
          (
          <issue>3</issue>
          ),
          <volume>629</volume>
          {
          <fpage>660</fpage>
          (
          <year>1989</year>
          ). https://doi.org/10.1017/S0001867800018851
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Ko</surname>
          </string-name>
          , S.-S.,
          <string-name>
            <surname>Serfozo</surname>
            ,
            <given-names>R.F.</given-names>
          </string-name>
          :
          <article-title>Sojourn times in G/M/1 fork-join networks</article-title>
          .
          <source>Naval Research Logistics (NRL) 55(5)</source>
          ,
          <volume>432</volume>
          {
          <fpage>443</fpage>
          (
          <year>2008</year>
          ). https://doi.org/10.1002/nav.20294
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Kumar</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shorey</surname>
          </string-name>
          , R.:
          <article-title>Performance analysis and scheduling of stochastic fork-join jobs in a multicomputer system</article-title>
          .
          <source>IEEE Transactions on Parallel and Distributed Systems</source>
          <volume>10</volume>
          (
          <issue>4</issue>
          ),
          <volume>1147</volume>
          {
          <fpage>1164</fpage>
          (
          <year>1993</year>
          ). https://doi.org/10.1109/71.246075
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Osipov</surname>
            ,
            <given-names>O.A.</given-names>
          </string-name>
          :
          <article-title>A heterogeneous fork-join queueing system in which each job occupy all free servers</article-title>
          .
          <source>RUDN Journal of Mathematics, Information Sciences and Physics</source>
          <volume>26</volume>
          (
          <issue>1</issue>
          ),
          <volume>28</volume>
          {
          <fpage>38</fpage>
          (
          <year>2018</year>
          )
          <article-title>(in Russian)</article-title>
          . https://doi.org/10.22363/
          <fpage>2312</fpage>
          -9735-2018-26-1-
          <fpage>28</fpage>
          -38
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Narahari</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sundarrajan</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Performability analysis of fork-join queueing systems</article-title>
          .
          <source>Journal of the Operational Research Society</source>
          <volume>46</volume>
          (
          <issue>10</issue>
          ),
          <volume>1237</volume>
          {
          <fpage>1249</fpage>
          (
          <year>1995</year>
          ). https://doi.org/10.1057/jors.
          <year>1995</year>
          .171
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Lin</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kumar</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Optimal control of a queueing system with two heterogeneous servers</article-title>
          .
          <source>IEEE Transactions on Automatic Control</source>
          <volume>29</volume>
          (
          <issue>8</issue>
          ),
          <volume>696</volume>
          {
          <fpage>703</fpage>
          (
          <year>1984</year>
          ). https://doi.org/10.1109/TAC.
          <year>1984</year>
          .1103637
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>