<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Analysis of Centralized Splitting Fork-Join Queueing Systems with Heterogeneous Servers and Threshold Control Policy</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author role="corresp">
							<persName><forename type="first">Oleg</forename><surname>Osipov</surname></persName>
							<email>oleg.alex.osipov@gmail.com</email>
							<idno type="ORCID">0000-0002-5923-2725</idno>
							<affiliation key="aff0">
								<orgName type="institution">Saratov State University</orgName>
								<address>
									<addrLine>83 Astrakhanskaya Street</addrLine>
									<postCode>410012</postCode>
									<settlement>Saratov</settlement>
									<country key="RU">Russia</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Ekaterina</forename><surname>Rogachko</surname></persName>
							<idno type="ORCID">0000-0001-7815-2846</idno>
							<affiliation key="aff0">
								<orgName type="institution">Saratov State University</orgName>
								<address>
									<addrLine>83 Astrakhanskaya Street</addrLine>
									<postCode>410012</postCode>
									<settlement>Saratov</settlement>
									<country key="RU">Russia</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Analysis of Centralized Splitting Fork-Join Queueing Systems with Heterogeneous Servers and Threshold Control Policy</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">D679D7886A5778FC4F0E3B5AA49A1EB8</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T04:40+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Fork-Join Queueing Systems</term>
					<term>Heterogeneous Servers</term>
					<term>Threshold Control Policy</term>
					<term>Matrix Geometric Method</term>
					<term>Performance Measures</term>
					<term>Distributed Computing System</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>In this paper, we consider a Markovian centralized splitting fork-join queueing system with heterogeneous servers and an infinite 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 finished, 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></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><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 <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b1">2,</ref><ref type="bibr" target="#b2">3]</ref>, 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 <ref type="bibr" target="#b3">[4,</ref><ref type="bibr" target="#b4">5]</ref>. Papers <ref type="bibr" target="#b5">[6,</ref><ref type="bibr" target="#b6">7]</ref> 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 <ref type="bibr" target="#b3">[4]</ref> 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 <ref type="bibr" target="#b7">[8,</ref><ref type="bibr" target="#b8">9,</ref><ref type="bibr" target="#b9">10,</ref><ref type="bibr" target="#b10">11,</ref><ref type="bibr" target="#b11">12]</ref>.</p><p>The parallel-server fork-join queueing system consists of homogeneous servers <ref type="bibr" target="#b8">[9,</ref><ref type="bibr" target="#b9">10,</ref><ref type="bibr" target="#b12">13]</ref> or heterogeneous servers <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b1">2,</ref><ref type="bibr" target="#b7">8,</ref><ref type="bibr" target="#b10">11,</ref><ref type="bibr" target="#b11">12,</ref><ref type="bibr" target="#b13">14]</ref>. 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 <ref type="bibr" target="#b14">[15]</ref>, such as the centralized splitting model, the distributed splitting model, and the split-merge model.</p><p>In <ref type="bibr" target="#b10">[11]</ref> 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 <ref type="bibr" target="#b13">[14]</ref> each job is split into a number of tasks, one for each free server. Paper <ref type="bibr" target="#b1">[2]</ref> 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 q i before acceptance.</p><p>The threshold control policy is used as optimal solution for the job routing problem named the slow server problem <ref type="bibr" target="#b15">[16,</ref><ref type="bibr" target="#b16">17]</ref>. 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 <ref type="bibr" target="#b15">[16]</ref>, 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 <ref type="bibr" target="#b16">[17,</ref><ref type="bibr" target="#b17">18]</ref> 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 <ref type="bibr" target="#b18">[19]</ref>, systems with unreliable servers <ref type="bibr" target="#b19">[20]</ref> and with heterogeneous servers in speed and in quality of resolution <ref type="bibr" target="#b20">[21]</ref>.</p><p>In this paper, we consider a centralized splitting fork-join queueing model <ref type="bibr" target="#b14">[15]</ref> with heterogeneous servers and a threshold control policy. We apply the matrixgeometric approach to analyze the considered system. A similar approach was used in <ref type="bibr" target="#b9">[10,</ref><ref type="bibr" target="#b13">14]</ref>.</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. We consider a system which consists of M heterogeneous servers S i , i = 1, . . . , M , and a FCFS infinite capacity queue as shown in Fig. <ref type="figure" target="#fig_0">1</ref>. 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 S i have exponential distribution with parameter µ i , i = 1, . . . , M , and</p><formula xml:id="formula_0">µ 1 &gt; µ 2 &gt; • • • &gt; µ M .</formula><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 S i , i ∈ {1, . . . , M }, if the queue length immediately after the arrival is not less than threshold level q i , i.e., When a task finishes its service at server S i , a task from the queue will be assigned to server S i if the queue length satisfies b ≥ q i . Otherwise server S i will be idle. Tasks of a job are served independently, when all the tasks associated with the job are finished, the job service is completed.</p><formula xml:id="formula_1">q i ≤ b + 1, (1 = q 1 ≤ q 2 ≤ • • • ≤ q M &lt; q M +1 = ∞). µ 1 µ 2 . . . µ M . . . λ</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">The Stationary Distribution</head><p>The system state is described by a vector x = (r, n 0 , n 1 , . . . , n M ), where r = r(b) = b div d denotes the number of waiting jobs in the queue, n 0 = n 0 (b) = b mod d is the number of tasks for the served job in the queue,</p><formula xml:id="formula_2">n i = 0, if server S i is idle, 1, if server S i is busy.</formula><p>The process {x(t), t ≥ 0} 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><formula xml:id="formula_3">F(x) = {i &gt; 0 : n i = 0}, F(x) = {i &gt; 0 : n i = 1}.</formula><p>Denote by γ(b) the mandatory (minimal) number of busy servers for queue length b. We can write</p><formula xml:id="formula_4">γ(b) =      0, b = 0, M, b ≥ q M , max{i : q i ≤ b}, otherwise. Define ϕ(x) by ϕ(x) = the minimal element of F(x), if F(x) = ∅, ∞, otherwise.</formula><p>If there are idle servers in the system, a task will be assigned to server S ϕ(x) .</p><p>Let us define now the transition rate q(x, x ) from state x ∈ X to state x ∈ X . Each transition is associated with an event in the system, there are two types of events.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">A job arrives and splits into d tasks</head><formula xml:id="formula_5">(a) if b ≥ q M , q (x, (r + 1, n 0 , n 1 , . . . , n M )) = λ,<label>(1)</label></formula><formula xml:id="formula_6">(b) if b &lt; q M , q(x, x ) = λ,<label>(2)</label></formula><p>where x = x (d) can be obtained from the following recurrence relation</p><formula xml:id="formula_7">x (i+1) = r(b (i) + 1), n 0 (b (i) + 1), n (i) 1 , . . . , n (i) M , ϕ(x (i) ) &gt; γ(b (i) + 1), x (i) + e 2+ϕ(x (i) ) ,</formula><p>otherwise, with the initial value x (0) = x, i = 0, . . . , d − 1.</p><p>Here,</p><formula xml:id="formula_8">x (i) = r (i) , n (i) 0 , . . . , n (i) M and b (i) = dr (i) + n (i)</formula><p>0 ; e j denotes the vector of the appropriate dimension with all components equal to 0, except the jth, which is 1.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">A task finishes its service at server</head><formula xml:id="formula_9">S i (n i = 1) (a) if b &lt; q i , q (x, (r, n 0 , n 1 , . . . , n i−1 , 0, n i+1 , . . . , n M )) = µ i ,<label>(3)</label></formula><formula xml:id="formula_10">(b) if n 0 &gt; 0, {i ∈ F(x) : b ≥ q i } = ∅, q (x, (r, n 0 − 1, n 1 , . . . , n M )) = i∈ F (x): b≥qi µ i ,<label>(4)</label></formula><formula xml:id="formula_11">(c) if r &gt; 0, n 0 = 0, {i ∈ F(x) : b ≥ q i } = ∅, q(x, (r − 1, d − 1, n 1 , . . . , n M )) = i∈ F (x): b≥qi µ i .<label>(5)</label></formula><p>Let state space X be lexicographically ordered. The subset X l is called level l, l = 0, 1, . . . , and defined as</p><formula xml:id="formula_12">X l = {(r, n 0 , n 1 , . . . , n M ) ∈ X : r = l}. The cardinality L of X 0 is L = 2 M + (q 2 − q 1 )2 M −1 + (q 3 − q 2 )2 M −2 + • • • + (d − q σ0 )2 M −σ0 , where σ 0 = γ(d − 1).</formula><p>Let r be the minimal number r ∈ {1, 2, . . . } such that rd ≥ q M . The cardinalities of X l , l ≥ r are d.</p><p>The cardinalities of X l , 0 &lt; l &lt; r are</p><formula xml:id="formula_13">K l = 2 M −σ − l (q σ − l +1 − ld) + 2 M −σ − l −1 (q σ − l +2 − q σ − l +1 ) + • • • + + 2 M −σ + l +1 (q σ + l − q σ + l −1 ) + 2 M −σ + l (ld + d − q σ + l ), where σ − l = γ(ld), σ + l = γ(ld + d − 1)</formula><p>. The system states are presented in Table <ref type="table" target="#tab_0">1</ref>. </p><formula xml:id="formula_14">M q1 ≤ n0 &lt; q2 1, n2, . . . , nM (q2 − q1)2 M −1 . . . . . . . . . qσ 0 ≤ n0 ≤ d − 1 1, . . . , 1, nσ 0 +1, . . . , nM (d − qσ 0 )2 M −σ 0 0 &lt; l &lt; r 0 ≤ n0 &lt; q σ − l +1 − ld 1, . . . , 1, n σ − l +1 , . . . , nM 2 M −σ − l (q σ − l +1 − ld) q σ − l +1 − ld ≤ n0, n0 &lt; q σ − l +2 − ld 1, . . . , 1, n σ − l +2 , . . . , nM 2 M −σ − l −1 (q σ − l +2 − q σ − l +1 ) . . . . . . . . . q σ + l − ld ≤ n0 &lt; d 1, . . . , 1, n σ + l +1 , . . . , nM 2 M −σ + l (ld + d − q σ + l ) l ≥ r 0 ≤ n0 ≤ d − 1 1, . . . , 1 d</formula><p>It is easily shown that for X l , l &gt; 0, there are transitions to X l−1 and X l+1 . Thus, the Markov chain {x(t), t ≥ 0} is a quasi-birth-and-death (QBD) process, the generator matrix Q of the process has the following form </p><formula xml:id="formula_15">Q =                   B 00 B 01 0 0 • • • 0 0 0 0 0 0 0 • • • B 10 B 11 B 12 0 • • • 0 0 0 0 0 0 0 • • • 0 B 21 B 22 B 23 • • • 0 0 0 0 0 0 0 • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • 0 0 0 0 • • • 0 B r−1,r−2 B r−1,r−1 B r−1,r 0 0 0 • • • 0 0 0 0 • • • 0 0 B r,r−1 B r,r A 0 0 0 • • • 0 0 0 0 • • • 0 0 0 A 2 A 1 A 0 0 • • • 0 0 0 0 • • • 0 0 0 0 A 2 A 1 A 0 • • • 0 0 0 0 • • • 0 0 0 0 0 A 2 A</formula><formula xml:id="formula_16">                 </formula><p>, where blocks A 2 , A 1 , A 0 are square matrices of order d, B 00 is the square matrix of order L, blocks B 01 , B 10 are L × K 1 , K 1 × L matrices respectively, B l,l , l = 1, . . . , r, are square matrices of order K l (we set K r = d), blocks B l,l−1 , l = 2, . . . , r, are K l × K l−1 matrices, and blocks B l,l+1 , l = 1, . . . , r − 1, are K l × K l+1 matrices. The elements of matrices B 01 , B l,l+1 , l = 1, . . . , r −1, and A 0 are determined by ( <ref type="formula" target="#formula_5">1</ref>) and ( <ref type="formula" target="#formula_6">2</ref>). The elements of matrices B 10 , B l,l−1 , l = 2, . . . , r, and A 2 are determined by <ref type="bibr" target="#b4">(5)</ref>. Note that A 0 = λI, where I is an identity matrix of the appropriate order; A 2 is the square matrix of order d, where the (1, d)th element of the matrix is equal to M i=1 µ i , and other elements are zero. The non-diagonal elements of matrices B 00 , B l,l , l = 1, . . . , r, and A 1 are determined by ( <ref type="formula" target="#formula_6">2</ref>)-(4); the diagonal elements of these matrices are determined from conditions (we set B r,r+1 = A 0 ):</p><formula xml:id="formula_17">B 00 1 + B 01 1 = 0, B l,l−1 1 + B l,l 1 + B l,l+1 1 = 0 , A 0 1 + A 1 1 + A 2 1 = 0,</formula><p>where 1 is an ones column vector of the appropriate order. Note that A 1 is the bidiagonal square matrix of order d, where the (j, j)th element of the matrix is equal to −(λ + M i=1 µ i ), and the (j, j − 1)th element is equal to M i=1 µ i . It is known <ref type="bibr" target="#b21">[22]</ref>, that the QBD process is ergodic if and only if</p><formula xml:id="formula_18">π A A 0 1 &lt; π A A 2 1, where π A A = 0, π A 1 = 1, A = A 0 + A 1 + A 2 . The condition implies λd &lt; µ 1 + • • • + µ M .</formula><p>The stationary distribution π = (π 0 , π 1 , . . . ) of the QBD process can be computed using the matrix-geometric method <ref type="bibr" target="#b21">[22]</ref>. The row vector π l , l = 0, 1, . . . , defines probabilities of states for level l, according to the lexicographic order, π l = (π(x) : x ∈ X l ). We solve linear system πQ = 0 and π1 = 1 to find the stationary probabilities. Taking the advantage of the block structure in Q, we obtain</p><formula xml:id="formula_19">π 0 B 00 + π 1 B 10 = 0; π 0 B 01 + π 1 B 11 + π 2 B 21 = 0; π 1 B 12 + π 2 B 22 + π 3 B 32 = 0;</formula><p>. . . . . . . . . . . . . . . . . .</p><formula xml:id="formula_20">π i−1 B i−1,i + π i B i,i + π i+1 B i+1,i = 0; . . . . . . . . . . . . . . . . . . π r−2 B r−2,r−1 + π r−1 B r−1,r−1 + π r B r,r−1 = 0; π r−1 B r−1,r + π r B r,r + π r+1 A 2 = 0; π l−1 A 0 + π l A 1 + π l+1 A 2 = 0, l = r + 1, r + 2, . . . .<label>(6)</label></formula><p>We know <ref type="bibr" target="#b21">[22]</ref>, the solution of ( <ref type="formula" target="#formula_20">6</ref>) has the matrix-geometric form given by</p><formula xml:id="formula_21">π r+l = π r R l , l = 1, 2, . . . ,</formula><p>where R is the minimal non-negative solution to equation</p><formula xml:id="formula_22">A 0 +RA 1 +R 2 A 2 = 0, vectors π 0 , π 1 , . . . , π r satisfy (π 0 , . . . , π r )         B 00 B 01 0 • • • 0 0 B 10 B 11 B 12 • • • 0 0 0 B 21 B 22 • • • 0 0 • • • • • • • • • • • • • • • • • • 0 0 0 • • • B r−1,r−1 B r−1,r 0 0 0 • • • B r,r−1 B r,r + RA 2         = (0, . . . , 0), π 0 1 + π 1 1 + • • • + π r−1 1 + π r (I − R) −1 1 = 1.</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Performance Measures</head><p>Once stationary distribution π is computed, a variety of other performance measures may be obtained.</p><p>The average number B of jobs in the queue</p><formula xml:id="formula_23">B = ∞ l=1 lπ l 1 = r l=1 lπ l 1 + ∞ l=1 (r + l)π r R l 1 = = r l=1 lπ l 1 + π r R r(I − R) −1 + (I − R) −2 1.</formula><p>The average job waiting time W in the queue (the average time that the job waits in the queue before the first of its tasks is assigned to a server)</p><formula xml:id="formula_24">W = B/λ.</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Denote by T the average response time, then</head><formula xml:id="formula_25">T = W + V,</formula><p>where V is the average job service time, which is defined as the average total time required to process all of the tasks associated with the job once the first task is assigned to a server.</p><p>The average number N of jobs in the system is</p><formula xml:id="formula_26">N = λT.</formula><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.</p><p>1. We assume that when the first 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. The service process of the tagged job is described by an absorbing Markov chain ν = {ν(t), t ≥ 0}. 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</p><formula xml:id="formula_27">N = d j=1 N j {(0, ∅)},</formula><p>where N j = {(k, S) : k ∈ {0, 1, . . . , d − j}, S ∈ S j }, S j denotes the set of all j-element subsets of {1, . . . , M },</p><formula xml:id="formula_28">|N | = d j=1 j M d − j + 1 + 1.</formula><p>The initial probability distribution defined on state space N is given by the vector (α 0 , α), where</p><formula xml:id="formula_29">α 0 = α 0 (0, ∅) = 0, α = (α(k, S) : (k, S) ∈ N \ {(0, ∅)}), α (d − 1, {i}) = µ i M i=1 µ i , i = 1, . . . , M,</formula><p>and other initial probabilities are zero. Markov chain ν is determined by generator matrix Q ν with non-diagonal elements q ν ((k, S), (k , S ))</p><formula xml:id="formula_30">q ν ((k, S), (k , S )) =          µ i , if k = k = 0, S = S \ {i}, i ∈ S, µ i , if k = k − 1 ≥ 0, S = S {i}, i / ∈ S,</formula><p>We denote by T the square matrix of order |N | − 1 which is a submatrix of matrix Q ν and contains transition rates among the transient states.</p><p>The absorption time ξ for Markov chain ν is a random variable which has a PH-distribution with PH-representation (α, T ) <ref type="bibr" target="#b21">[22]</ref>. The expected absorption time is</p><formula xml:id="formula_31">E[ξ] = −αT −1 1.</formula><p>2. We assume that when the first 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:</p><p>the job arrives, -a task finishes and leaves the system, -a job arrives and this leads to a task of the job is assigned to an idle server. In this case, the service process of the tagged job is described by an absorbing Markov chain ζ = {ζ(t), t ≥ 0}. 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 ∈ X , X = {x ∈ X : r ≤ r}. States (0, ∅, x), x ∈ X are absorbing. The state space Z of Markov chain ζ is given by The initial probability distribution defined on state space Z is given by the vector (β 0 , β), where β 0 = (β 0 (0, ∅, x) : x ∈ X ) = 0, β = (β(k, S, x ) : (k, S, x ) ∈ Z \ Z 0 ):</p><formula xml:id="formula_32">Z = d−1 k=0 Z k ,</formula><formula xml:id="formula_33">β(k, S, x ) =   λ x∈A(x ) π(x) + M i=1 µ i x∈Di(x ) π(x)   G −1 ,</formula><p>x ∈ X presents states from which the system moves to state x as a result of a job arrival (x ∈ A(x )), or as a result of a task completion at server S i (x ∈ D i (x )), 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), (k , S , x )).</p><p>Suppose there is a transition from x to x as a result of an event described in Section 3. So we have the corresponding transition from (k, S, x) to (k , S , x ), where k and S will be described below.</p><p>Assume the system moves from state x to state x as a result of a job arrival, we denote by H(x, x ) = F(x ) \ F(x) the index set of idle servers which will be busy right after the event. Let H</p><formula xml:id="formula_34">(x, x ) = {i 1 , i 2 , . . . , i m }, i 1 &lt; i 2 &lt; • • • &lt; i m , then H j (x, x ) ⊆ H(x, x ) denotes the j-element set H j (x, x ) = {i 1 , . . . , i j }.</formula><p>Thus, we can write (a) A job arrives</p><formula xml:id="formula_35">q ζ ((k, S, x), (k , S , x )) = λ, where k = max {k − |H(x, x )|, 0}, S = S H k−k (x, x ), (b) A task finishes its service at S i i. if k &gt; 0, n i = 1, i / ∈ S, q ζ ((k, S, x), (k − 1, S ∪ {i}, x )) = µ i , ii. if k &gt; 0, q ζ ((k, S, x), (k − 1, S, x )) = i∈S:n i =1 µ i , iii. if k &gt; 0, n i = 0, q ζ ((k, S, x), (k, S \ {i}, x )) = µ i , iv. if k = 0, q ζ ((0, S, x), (0, S \ {i}, x )) = µ i .</formula><p>We denote by η the absorption time for Markov chain ζ. The expected ab-</p><formula xml:id="formula_36">sorption time E[η] is computed similarly to E[ξ].</formula><p>Finally, we have</p><formula xml:id="formula_37">V = E[ξ]c 1 + E[η]c 2 c 1 + c 2 ,</formula><p>where</p><formula xml:id="formula_38">c 1 = ω 1 , c 2 = β1G, (ω 1 , . . . , ω d ) = π r (I − R) −1 − π r − π r+1 M i=1 µ i .</formula><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 q i , i = 2, . . . , M . Let q * i 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 q * 2 = 2, q * 3 = 8, and T = 0.838.</p><p>To illustrate the advantages of the threshold control policy, we consider the fastest free server policy with q i = 1, i = 1, . . . , M . Figure <ref type="figure" target="#fig_2">2</ref> presents the average response times for the optimal threshold control policy and the fastest free server policy for several values of the arrival rate λ. 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 difference 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Conclusions</head><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.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. Centralized splitting fork-join queueing system with heterogeneous servers.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>where Z 0</head><label>0</label><figDesc>= x∈ X {(0, S, x) : S ∈ S(x, 0)} , Z k = x∈ X : n0=k {(k, S, x) : S ∈ S(x, k)} , k = 1, . . . , d − 1, S(x, k) = S ⊆ F(x) : |S| + k ≤ d .</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. The average response times for (a) d = 2 and (b) d = 3.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 1 .</head><label>1</label><figDesc>System states.</figDesc><table><row><cell>r</cell><cell cols="2">States (r, n0, n1, . . . , nM ) n0 n1, . . . , nM</cell><cell>Number of states</cell></row><row><cell></cell><cell>0</cell><cell>n1, . . . , nM</cell><cell>2</cell></row><row><cell>0</cell><cell></cell><cell></cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" xml:id="foot_0">i∈S µ i , if k = k − 1 ≥ 0, S = S, 0,otherwise.</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Computable bounds in fork-join queueing systems</title>
		<author>
			<persName><forename type="first">A</forename><surname>Rizk</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Poloczek</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Ciucu</surname></persName>
		</author>
		<idno>2796314.2745859</idno>
		<ptr target="https://doi.org/10.1145/" />
	</analytic>
	<monogr>
		<title level="j">SIGMETRICS Perform. Eval. Rev</title>
		<imprint>
			<biblScope unit="volume">43</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="335" to="346" />
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Optimizing stochastic scheduling in fork-join queueing models: bounds and applications</title>
		<author>
			<persName><forename type="first">W</forename><forename type="middle">R</forename><surname>Khudabukhsh</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Rizk</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Frömmgen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Koeppl</surname></persName>
		</author>
		<idno type="DOI">10.1109/INFOCOM.2017.8057013</idno>
		<ptr target="https://doi.org/10.1109/INFOCOM.2017.8057013" />
	</analytic>
	<monogr>
		<title level="m">IEEE INFOCOM 2017</title>
				<meeting><address><addrLine>New York</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2017">2017</date>
			<biblScope unit="page" from="1" to="9" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">MapReduce performance model for Hadoop 2</title>
		<author>
			<persName><forename type="first">D</forename><surname>Glushkova</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Jovanovic</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Abello</surname></persName>
		</author>
		<idno type="DOI">10.1016/j.is.2017.11.006</idno>
		<ptr target="https://doi.org/10.1016/j.is.2017.11.006" />
	</analytic>
	<monogr>
		<title level="j">Information Systems</title>
		<imprint>
			<biblScope unit="volume">79</biblScope>
			<biblScope unit="page" from="32" to="43" />
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Analysis of fork/join and related queueing systems</title>
		<author>
			<persName><forename type="first">A</forename><surname>Thomassian</surname></persName>
		</author>
		<idno type="DOI">10.1145/2628913</idno>
		<ptr target="https://doi.org/10.1145/2628913" />
	</analytic>
	<monogr>
		<title level="j">ACM Computing Surveys</title>
		<imprint>
			<biblScope unit="volume">47</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page">71</biblScope>
			<date type="published" when="2014">2014</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">On the delay-storage trade-off in content download from coded distributed storage</title>
		<author>
			<persName><forename type="first">G</forename><surname>Joshi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Liu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Soljanin</surname></persName>
		</author>
		<idno type="DOI">10.1109/JSAC.2014.140518</idno>
		<ptr target="https://doi.org/10.1109/JSAC.2014.140518" />
	</analytic>
	<monogr>
		<title level="j">IEEE Journal on Selected Areas on Communications</title>
		<imprint>
			<biblScope unit="volume">32</biblScope>
			<biblScope unit="issue">5</biblScope>
			<biblScope unit="page" from="989" to="997" />
			<date type="published" when="2014">2014</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Analytic queueing models for programs with internal concurrency</title>
		<author>
			<persName><forename type="first">P</forename><surname>Heidelberger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><forename type="middle">S</forename><surname>Trivedi</surname></persName>
		</author>
		<idno type="DOI">10.1109/TC.1983.1676125</idno>
		<ptr target="https://doi.org/10.1109/TC.1983.1676125" />
	</analytic>
	<monogr>
		<title level="j">IEEE Trans. Comp. C</title>
		<imprint>
			<biblScope unit="volume">3</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="73" to="82" />
			<date type="published" when="1983">1983</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">The approximation of response time of a cloud computing system</title>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">V</forename><surname>Gorbunova</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><forename type="middle">S</forename><surname>Zaryadov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">I</forename><surname>Matyushenko</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><forename type="middle">E</forename><surname>Samouylov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Shorgin</surname></persName>
		</author>
		<author>
			<persName><surname>Ya</surname></persName>
		</author>
		<idno type="DOI">10.14357/19922264150304</idno>
		<ptr target="https://doi.org/10.14357/19922264150304" />
	</analytic>
	<monogr>
		<title level="j">Informatics and Applications</title>
		<imprint>
			<biblScope unit="volume">9</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="31" to="38" />
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
	<note>in Russian</note>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Two parallel queues created by arrivals with two demands I</title>
		<author>
			<persName><forename type="first">L</forename><surname>Flatto</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Hahn</surname></persName>
		</author>
		<idno type="DOI">10.1137/0144074</idno>
		<ptr target="https://doi.org/10.1137/0144074" />
	</analytic>
	<monogr>
		<title level="j">SIAM Journal of Applied Mathematics</title>
		<imprint>
			<biblScope unit="volume">44</biblScope>
			<biblScope unit="issue">5</biblScope>
			<biblScope unit="page" from="1041" to="1053" />
			<date type="published" when="1984">1984</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Approximate analysis of fork/join synchronization in parallel queues</title>
		<author>
			<persName><forename type="first">R</forename><surname>Nelson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">N</forename><surname>Tantawi</surname></persName>
		</author>
		<idno type="DOI">10.1109/12.2213</idno>
		<ptr target="https://doi.org/10.1109/12.2213" />
	</analytic>
	<monogr>
		<title level="j">IEEE Trans. Comp</title>
		<imprint>
			<biblScope unit="volume">37</biblScope>
			<biblScope unit="issue">6</biblScope>
			<biblScope unit="page" from="739" to="743" />
			<date type="published" when="1988">1988</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Generalized parallel-server fork-join queues with dynamic task scheduling</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">S</forename><surname>Squillante</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Zhang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Sivasubramaniam</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Gautam</surname></persName>
		</author>
		<idno type="DOI">10.1007/s10479-008-0312-7</idno>
		<ptr target="https://doi.org/10.1007/s10479-008-0312-7" />
	</analytic>
	<monogr>
		<title level="j">Annals of Operations Research</title>
		<imprint>
			<biblScope unit="volume">160</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="227" to="255" />
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">The fork-join queue and related systems with synchronization constraints: stochastic ordering and computable bounds</title>
		<author>
			<persName><forename type="first">F</forename><surname>Baccelli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">M</forename><surname>Makowski</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Shwartz</surname></persName>
		</author>
		<idno type="DOI">10.1017/S0001867800018851</idno>
		<ptr target="https://doi.org/10.1017/S0001867800018851" />
	</analytic>
	<monogr>
		<title level="j">Adv. Appl. Probab</title>
		<imprint>
			<biblScope unit="volume">21</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="629" to="660" />
			<date type="published" when="1989">1989</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Sojourn times in G/M/1 fork-join networks</title>
		<author>
			<persName><forename type="first">S.-S</forename><surname>Ko</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">F</forename><surname>Serfozo</surname></persName>
		</author>
		<idno type="DOI">10.1002/nav.20294</idno>
		<ptr target="https://doi.org/10.1002/nav.20294" />
	</analytic>
	<monogr>
		<title level="j">Naval Research Logistics</title>
		<imprint>
			<biblScope unit="volume">55</biblScope>
			<biblScope unit="issue">5</biblScope>
			<biblScope unit="page" from="432" to="443" />
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
	<note>NRL)</note>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Performance analysis and scheduling of stochastic fork-join jobs in a multicomputer system</title>
		<author>
			<persName><forename type="first">A</forename><surname>Kumar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Shorey</surname></persName>
		</author>
		<idno type="DOI">10.1109/71.246075</idno>
		<ptr target="https://doi.org/10.1109/71.246075" />
	</analytic>
	<monogr>
		<title level="j">IEEE Transactions on Parallel and Distributed Systems</title>
		<imprint>
			<biblScope unit="volume">10</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="1147" to="1164" />
			<date type="published" when="1993">1993</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">A heterogeneous fork-join queueing system in which each job occupy all free servers</title>
		<author>
			<persName><forename type="first">O</forename><forename type="middle">A</forename><surname>Osipov</surname></persName>
		</author>
		<idno type="DOI">10.22363/2312-9735-2018-26</idno>
		<idno>-1- 28-38</idno>
		<ptr target="https://doi.org/10.22363/2312-9735-2018-26" />
	</analytic>
	<monogr>
		<title level="j">RUDN Journal of Mathematics, Information Sciences and Physics</title>
		<imprint>
			<biblScope unit="volume">26</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="28" to="38" />
			<date type="published" when="2018">2018</date>
		</imprint>
	</monogr>
	<note>in Russian</note>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Performability analysis of fork-join queueing systems</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Narahari</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Sundarrajan</surname></persName>
		</author>
		<idno type="DOI">10.1057/jors.1995.171</idno>
		<ptr target="https://doi.org/10.1057/jors.1995.171" />
	</analytic>
	<monogr>
		<title level="j">Journal of the Operational Research Society</title>
		<imprint>
			<biblScope unit="volume">46</biblScope>
			<biblScope unit="issue">10</biblScope>
			<biblScope unit="page" from="1237" to="1249" />
			<date type="published" when="1995">1995</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Optimal control of a queueing system with two heterogeneous servers</title>
		<author>
			<persName><forename type="first">W</forename><surname>Lin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Kumar</surname></persName>
		</author>
		<idno type="DOI">10.1109/TAC.1984.1103637</idno>
		<ptr target="https://doi.org/10.1109/TAC.1984.1103637" />
	</analytic>
	<monogr>
		<title level="j">IEEE Transactions on Automatic Control</title>
		<imprint>
			<biblScope unit="volume">29</biblScope>
			<biblScope unit="issue">8</biblScope>
			<biblScope unit="page" from="696" to="703" />
			<date type="published" when="1984">1984</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">On the slow server problem</title>
		<author>
			<persName><forename type="first">V</forename><forename type="middle">V</forename><surname>Rykov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">V</forename><surname>Efrosinin</surname></persName>
		</author>
		<idno type="DOI">10.1134/S0005117909120091</idno>
		<ptr target="https://doi.org/10.1134/S0005117909120091" />
	</analytic>
	<monogr>
		<title level="j">Automation and Remote Control</title>
		<imprint>
			<biblScope unit="volume">70</biblScope>
			<biblScope unit="issue">12</biblScope>
			<biblScope unit="page" from="2013" to="2023" />
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">Monotone control of queueing systems with heterogeneous servers</title>
		<author>
			<persName><forename type="first">V</forename><surname>Rykov</surname></persName>
		</author>
		<idno type="DOI">10.1023/A:1010893501581</idno>
		<ptr target="https://doi.org/10.1023/A:1010893501581" />
	</analytic>
	<monogr>
		<title level="j">Queueing Sys</title>
		<imprint>
			<biblScope unit="volume">37</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="391" to="403" />
			<date type="published" when="2001">2001</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">Threshold policies for controlled retrial queues with heterogeneous servers</title>
		<author>
			<persName><forename type="first">D</forename><surname>Efrosinin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Breuer</surname></persName>
		</author>
		<idno type="DOI">10.1007/s10479-006-5297-5</idno>
		<ptr target="https://doi.org/10.1007/s10479-006-5297-5" />
	</analytic>
	<monogr>
		<title level="j">Ann. Oper. Res</title>
		<imprint>
			<biblScope unit="volume">141</biblScope>
			<biblScope unit="page" from="139" to="162" />
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">Optimal control of a two-server queueing system with failures</title>
		<author>
			<persName><forename type="first">E</forename><surname>Özkan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Kharoufeh</surname></persName>
		</author>
		<idno type="DOI">10.1017/S0269964814000114</idno>
		<ptr target="https://doi.org/10.1017/S0269964814000114" />
	</analytic>
	<monogr>
		<title level="j">Probability in the Engineering and Informational Sciences</title>
		<imprint>
			<biblScope unit="volume">28</biblScope>
			<biblScope unit="issue">10</biblScope>
			<biblScope unit="page" from="489" to="527" />
			<date type="published" when="2014">2014</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">Routing in a queueing system with two heterogeneous servers in speed and in quality of resolution</title>
		<author>
			<persName><forename type="first">B</forename><surname>Legros</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Jouini</surname></persName>
		</author>
		<idno type="DOI">10.1080/15326349.2017</idno>
		<idno>.1303615</idno>
		<ptr target="https://doi.org/10.1080/15326349.2017" />
	</analytic>
	<monogr>
		<title level="j">Stochastic Models</title>
		<imprint>
			<biblScope unit="volume">33</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="392" to="410" />
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<monogr>
		<author>
			<persName><forename type="first">Q.-M</forename><surname>He</surname></persName>
		</author>
		<idno type="DOI">10.1007/978-1</idno>
		<idno>-4614-7330-5</idno>
		<ptr target="https://doi.org/10.1007/978-1" />
		<title level="m">Fundamentals of Matrix-Analytic Methods</title>
				<meeting><address><addrLine>New York</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2014">2014</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
