# Lecture 009

Non-Preemptive Migration (NP, initial placement, remote execution): migration of newborn jobs only. (You don't migrate a job once it has started running)

Preemptive Migration (P, active process migration): migration active jobs

Job size: total CPU requirement in seconds

Job age: total CPU usage til now

Job remaining lifetime: future CPU requirement

## Heavy Tails

Failure rate function:

r_X(t) = \frac{f_X(t)}{\bar{F}_X(t)}

Decreasing Failure Rate: $r_X(t)$ strictly decrease with $t$. (e.g. friendship, feedback loop) Increasing Failure Rate: $r_X(t)$ strictly increase with $t$. (e.g. lifetime of person, no feedback loop)

### Exponential Distribution

For Exponential, $Pr\{X > x + a | X > a\} = Pr\{X > x\}$ means the lifetime is independent of the current age by memoryless.

• For $X \sim \text{Exp}(\lambda)$, $C_X^2 = \frac{Var(X)}{E[X]^2} = 1$

• therefore, there should not be incentive to migrate tasks

### Pareto Distribution

For $X \sim \text{Pareto}(\alpha)$, and $0 < \alpha < 2$

\begin{align*} f_X(x) =& \alpha x^{-\alpha - 1} \tag{for $x \geq 1$}\\ F_X(x) =& Pr\{X < x\} = 1 - x^{-\alpha} \tag{for $x \geq 1$}\\ \bar{F}_X(x) =& Pr\{X > x\} = x^{-\alpha} \tag{for $x \geq 1$}\\ r_X(x) =& \frac{\alpha x^{-\alpha - 1}}{x^{-\alpha}} = \frac{\alpha}{x} \tag{for $x \geq 1$, decreasing failure rate}\\ E[X] =& \infty\\ E[X^i] =& \infty \tag{$\forall i > 1$}\\ \end{align*}

For $\text{Pareto}(\alpha = 1)$, what is the probability a job with age $a$ live to at least age $b$?

Pr\{X > b | X \geq a \geq 1\} = \frac{Pr\{X > b \cap X \geq a\}}{Pr\{X \geq a\}} = \frac{Pr\{X > b\}}{Pr\{X \geq a\}} = \frac{1/b}{1/a} = \frac{a}{b} \text{ where } b > a

Which means:

1. of all jobs of age 1 second, half of them will live to at least 2 seconds
2. The probability of a job of age $1$ seconds use $X > t$ seconds of CPU is $\frac{1}{t}$
3. The probability of a job of age $t$ seconds use $X > 2t$ seconds of CPU is $\frac{1}{2}$

Properties of Pareto Distribution:

1. decreasing failure rate
2. infinite (or near infinite) variance
3. heavy tail

### Bounded Pareto

For $X \sim \text{Bounded Pareto}(k, p, \alpha)$ for $k \leq x \leq p, 0 < \alpha < 2$

\begin{align*} f(x) =& \alpha x^{-\alpha - 1} \cdot \left(\frac{k^\alpha}{1 - (\frac{k}{p})^\alpha}\right)\\ \end{align*}

$\frac{k^\alpha}{1 - (\frac{k}{p})^\alpha}$ is a normalization factor to make integral of density function between $k$ and $p$ come out to $1$

### Heavy Tails

Pareto is more heavy tail than Exponential with the same mean:

• Pareto: largest $1\%$ of jobs comprise about $50\%$ load, more biased than 80-20 rule

• Exponential: largest $1\%$ of jobs comprise about $5\%$ load.

Heavy Tails:

• $\alpha \rightarrow 0$ yields most variable and most heavy-tailed

• $\alpha \rightarrow 2$ yields least variable and least heavy-tailed

• CPU: $\text{Pareto}(\alpha = 0.69)$ gives $C^2 = 23000$
• Memory: $\text{Pareto}(\alpha = 0.72)$ gives $C^2 = 43000$