cs0502019/model.tex
1: \def\note#1{\textbf{#1}}
2: \def\vecr{\textbf{{\textrm{r}}}}
3: \def\vecx{\textbf{{\textrm{x}}}}
4: \def\vecs{\textbf{{\textrm{s}}}}
5: \def\vecp{\textbf{{\textrm{p}}}}
6: \def\vecq{\textbf{{\textrm{q}}}}
7: 
8: \section{The model}
9: \label{sec:model}
10: 
11: In this section, we formally describe the model we work with
12: and define the terms and notations throughout the paper.
13: 
14: \textbf{Price-Anticipating Resource Allocation.}\hspace*{.2cm}
15: We study the problem of allocating a set of divisible resources (or
16: machines). Suppose that there are $m$ users and $n$ machines. Each
17: machine can be continuously divided for allocation to multiple users.
18: An \emph{allocation scheme} $\omega = (\vecr_1, \ldots, \vecr_m)$,
19: where $\vecr_i=(r_{i1},\cdots,r_{in})$ with $r_{ij}$ representing the
20: share of machine $j$ allocated to user $i$, satisfies that for any
21: $1\leq i\leq m$ and $1\leq j\leq n$, $r_{ij}\geq 0$ and $\sum_{i=1}^m
22: r_{ij}\leq 1$.  Let $\Omega$ denote the set of all the allocation
23: schemes.
24: 
25: We consider the \emph{price anticipating mechanism} in which each user
26: places a bid to each machine, and the price of the machine is
27: determined by the total bids placed.  Formally, suppose that user $i$
28: submits a non-negative bid $x_{ij}$ to machine $j$.  The price of
29: machine $j$ is then set to $Y_j=\sum_{i=1}^n x_{ij}$, the total bids
30: placed on the machine $j$.  Consequently, user $i$ receives a
31: fraction of $r_{ij}=\frac{x_{ij}}{Y_j}$ of $j$. When $Y_j=0$,
32: i.e. when there is no bid on a machine, the machine is not allocated
33: to anyone.  We call $\vecx_i=(x_{i1},\ldots, x_{in})$ the bidding
34: vector of user $i$.
35: 
36: %Compared to other market based resource allocation mechanism, this
37: %scheme has low implementation overhead and can respond to the user's
38: %need instantaneously.  It has been implemented in several
39: %systems~\cite{chun2000,lai2004,lai2004-2} and analyzed by multiple
40: %authors~\cite{kelly1997,kelly1998,hajek2004-2,hajek2004-1,johari2004}.
41: 
42: The additional consideration we have is that each user $i$ has a
43: budget constraint $X_i$.  Therefore, user $i$'s total bids have to
44: sum up to his budget, i.e.\ $\sum_{j=1}^n x_{ij} = X_i$.  The budget
45: constraints come from the fact that the users do not have infinite
46: budget. % or from a two stage decision process.
47: 
48: \textbf{Utility Functions.}\hspace*{.2cm}
49: Each user $i$'s utility is represented by a function $U_i$ of the
50: fraction $(r_{i1},\ldots, r_{in})$ the user receives from each
51: machine.  Given the problem domain we consider, we assume that each
52: user has different and relatively independent preferences for different machines.
53: Therefore, the basic utility function we
54: consider is the \emph{linear utility function}: $U_i(r_{i1},\cdots,
55: r_{in}) = w_{i1}r_{i1}+\cdots+w_{in}r_{in}$, where $w_{ij}\geq 0$ is
56: user $i$'s private preference, also called his \emph{weight}, on
57: machine $j$.  For example, suppose machine $1$ has a faster CPU but
58: less memory than machine $2$, and user $1$ runs CPU bounded
59: applications, while user $2$ runs memory bounded applications. As a
60: result, $w_{11}>w_{12}$ and $w_{21}<w_{22}$.  
61: %Allowing private
62: %preferences for each user has a significant impact on the analysis of
63: %the game because it no longer falls into the category of a congestion
64: %game.
65: 
66: Our definition of utility functions corresponds to the user having
67: enough jobs or enough parallelism within jobs to utilize all the
68: machines. Consequently, the user's goal is to grab as much of a
69: resource as possible.  We call this the \emph{infinite parallelism
70: model}. In practice, a user's application may have an inherent limit
71: on parallelization (e.g., some computations must be done sequentially)
72: or there may be a system limit (e.g., the applications data is being
73: served from a file server with limited capacity).  To model this, we
74: also consider the more realistic \emph{finite parallelism} model,
75: where the user's parallelism is bounded by $k_i$, and the user's
76: utility $U_i$ is defined to be the sum of $k_i$ largest
77: $w_{ij}r_{ij}$. In this model, the user only submits bids to up to
78: $k_i$ machines.
79: 
80: There are other system issues that this model does not consider. There
81: is usually a delay before a user can utilize a machine. For example,
82: the user must copy code and data to a machine before running his
83: application there. This model assumes that the job size is large
84: enough that this delay is negligible. Another issue is that there is
85: overhead for multiplexing resources on a single machine. This model
86: assumes the degree of multiplexing is sufficiently low that the
87: overhead of modern operating system and virtualization technologies is
88: negligible. 
89: 
90: \textbf{Best Response.}\hspace*{.2cm} 
91: As typically, we assume the users are selfish and strategic --- they
92: all act to maximize their own utility, defined by their utility
93: functions.  From the perspective of user $i$, if the total bids of the
94: other users placed on each machine $j$ is $y_j$, then the \emph{best
95: response} of user $i$ to the system is the solution of the following
96: optimization problem:
97: \[\mbox{maximize $U_i(\frac{x_{ij}}{x_{ij}+y_j})$ subject to}\]
98: \[\mbox{$\sum_{j=1}^n x_{ij} = X_i$, and $x_{ij}\geq 0$.}\]
99: 
100: The difficulty of the above optimization problem depends on the
101: formulation of $U_i$.  We will show later how to solve it for the
102: infinite parallelism model and provide a heuristic for finite
103: parallelism model.
104: 
105: \textbf{Nash Equilibrium.}\hspace*{.2cm}
106: By the assumption that the user is selfish, each user's bidding vector
107: is the best response to the system.  The question we are most
108: interested in is whether there exists a collection of bidding vectors,
109: one for each user, such that each user's bidding vector is the best
110: response to those of the other users.  Such a state is known as the \emph{Nash
111: equilibrium}, a central concept in Game Theory.  Formally, the bidding
112: vectors $\vecx_1,\ldots,\vecx_m$ is a \emph{Nash equilibrium} if for
113: any $1\leq i\leq m$, $\vecx_i$ is the best response to the system, or,
114: for any other bidding vector $\vecx_i'$,
115: \[U_i(\vecx_1,\ldots, \vecx_i, \ldots,\vecx_m) \geq U_i(\vecx_1,
116: \ldots,\vecx_i',\ldots, \vecx_m)\,.\]
117: 
118: The Nash equilibrium is desirable because it is a stable state at
119: which no one has incentive to change his strategy.  But a game may not
120: have an equilibrium.  Indeed, Nash equilibrium may not exist in
121: the price anticipating scheme we defined above.  This can be shown by
122: a simple example of two players and two machines.  For example, let
123: $U_1(r_1, r_2)=r_1$ and $U_2(r_1,r_2)=r_1+r_2$.  Then player $1$
124: should never bid on machine $2$ because it has no value to him.  Now,
125: player $2$ has to put a positive bid on machine $2$ in order to claim
126: the machine, but there is no low limit, resulting the non-existence
127: of the Nash equilibrium.  Clearly, this happens whenever there is a
128: resource that is ``wanted'' by only one player.  To rule out this
129: case, we consider those \emph{strongly competitive} games.  Under the
130: infinite parallelism model, a game is called strongly competitive if
131: for any $1\leq j\leq n$, there exist $i\neq k$ such that
132: $w_{ij},w_{kj}>0$.  Under such condition, we have that
133: \begin{theorem}\label{thm:exist}
134: There always exists a pure strategy Nash equilibrium in a strongly
135: competitive game. 
136: \end{theorem}
137: \begin{proof}
138: The result is a special case of the general result in~\cite{zhang2004}.
139: We have included in Appendix~\ref{sec:p1} a simpler proof for linear
140: utility functions considered in this paper.
141: \end{proof}
142: 
143: \up
144: Given the existence of the Nash equilibrium, the next important
145: question is the performance at the Nash equilibrium, which is often
146: measured by its efficiency and fairness.
147: 
148: \textbf{Efficiency (Price of Anarchy).}\hspace*{.2cm}
149: For an allocation scheme $\omega\in\Omega$, denote by
150: $U(\omega)=\sum_i U_i(\vecr_i)$ the social welfare under $\omega$.
151: Let $U^\ast = \max_{\omega\in\Omega} U(\omega)$ denote the optimal
152: social welfare --- the maximum possible aggregated user utilities.
153: The efficiency at an allocation scheme $\omega$ is defined as
154: $\pi(\omega)=\frac{U(\omega)}{U^\ast}$.  Let $\Omega_0$ denote the set
155: of the allocation at the Nash equilibrium.  When there exists Nash
156: equilibrium, i.e.\ $\Omega_0\neq\emptyset$, define the
157: \emph{efficiency} of a game $Q$ to be $\pi(Q)=\min_{\omega\in\Omega_0}\pi(\omega)$.
158: 
159: It is usually the case that $\pi<1$, i.e. there is an efficiency loss
160: at a Nash equilibrium.  Such loss can be viewed as caused by the lack
161: of central enforcement of the user's behavior.  Thus, such efficiency
162: loss is also called the \emph{price of anarchy}, a term coined
163: in~\cite{papadimitriou2001}.  The price of anarchy is an important
164: metric as it represents the maximum social loss as a result of the
165: users' rationality and the decentralization of the allocation scheme.
166: 
167: \textbf{Fairness.}\hspace*{.2cm}
168: While the definition of efficiency is standard, there are multiple
169: ways to define fairness.  We consider two metrics.  One is by
170: comparing the users' utilities.  The \emph{utility uniformity}
171: $\tau(\omega)$ of an allocation scheme $\omega$ is defined to be
172: $\frac{\min_i U_i(\omega)}{\max_i U_i(\omega)}$, the ratio of the
173: minimum utility and the maximum utility among the users.  Such
174: definition (or utility discrepancy defined similarly as $\frac{\max_i
175: U_i(\omega)}{\min_i U_i(\omega)}$) is used extensively in Computer
176: Science literature.  Under this definition, the utility uniformity
177: $\tau(Q)$ of a game $Q$ is defined to be $\tau(Q)=\min_{\omega\in\Omega_0}\tau(\omega)$.
178: 
179: The other metric extensively studied in Economics is the concept of
180: envy-freeness~\cite{varian1974}.  Unlike the utility uniformity metric,
181: the enviness concerns how the user perceives the value of the share
182: assigned to him, compared to the shares other users receive.  Within
183: such a framework, define the \emph{envy-freeness} of an allocation
184: scheme $\omega$ by $\rho(\omega)=\min_{i,j}\frac{U_i(\vecr_i)}{U_i(\vecr_j)}$.  When $\rho(\omega)\geq 1$, the
185: scheme is known as an envy-free allocation scheme.  Likewise, the
186: envy-freeness $\rho(Q)$ of a game $Q$ is defined to be $\rho(Q)=\min_{\omega\in\Omega_0}\rho(\omega)$.
187: