An Average-Case Analysis for Rate-Monotonic Multiprocessor - - PowerPoint PPT Presentation

an average case analysis for rate monotonic
SMART_READER_LITE
LIVE PREVIEW

An Average-Case Analysis for Rate-Monotonic Multiprocessor - - PowerPoint PPT Presentation

An Average-Case Analysis for Rate-Monotonic Multiprocessor Real-time Scheduling Andreas Karrenbauer & Thomas Rothvo Institute of Mathematics EPFL, Lausanne ESA 2009 Real-time Scheduling Given: synchronous tasks 1 , . . . , n where


slide-1
SLIDE 1

An Average-Case Analysis for Rate-Monotonic Multiprocessor Real-time Scheduling

Andreas Karrenbauer & Thomas Rothvoß

Institute of Mathematics EPFL, Lausanne

ESA 2009

slide-2
SLIDE 2

Real-time Scheduling

Given: synchronous tasks τ1, . . . , τn where task τi

◮ is periodic with period p(τi) ◮ has running time c(τi) ◮ has implicit deadline

W.l.o.g.: Task τi releases job of length c(τi) at 0, p(τi), 2p(τi), . . . Scheduling policy:

◮ multiprocessor ◮ fixed priority ◮ pre-emptive

slide-3
SLIDE 3

Example

c(τ1) = 1 p(τ1) = 2 c(τ2) = 2 p(τ2) = 5

b b b

time 0 1 2 3 4 5 6 7 8 9 10

slide-4
SLIDE 4

Example

Theorem (Liu & Layland ’73)

Optimal priorities:

1 p(τi) for τi (Rate-monotonic Schedule)

c(τ1) = 1 p(τ1) = 2 c(τ2) = 2 p(τ2) = 5

b b b

time 0 1 2 3 4 5 6 7 8 9 10

slide-5
SLIDE 5

Example

Theorem (Liu & Layland ’73)

Optimal priorities:

1 p(τi) for τi (Rate-monotonic Schedule)

c(τ1) = 1 p(τ1) = 2 c(τ2) = 2 p(τ2) = 5

b b b

time 0 1 2 3 4 5 6 7 8 9 10

slide-6
SLIDE 6

Example

Theorem (Liu & Layland ’73)

Optimal priorities:

1 p(τi) for τi (Rate-monotonic Schedule)

c(τ1) = 1 p(τ1) = 2 c(τ2) = 2 p(τ2) = 5

b b b

time 0 1 2 3 4 5 6 7 8 9 10

slide-7
SLIDE 7

Example

Theorem (Liu & Layland ’73)

Optimal priorities:

1 p(τi) for τi (Rate-monotonic Schedule)

c(τ1) = 1 p(τ1) = 2 c(τ2) = 2 p(τ2) = 5

b b b

time 0 1 2 3 4 5 6 7 8 9 10

Definition

u(τ) = c(τ)

p(τ) = utilization of task τ

slide-8
SLIDE 8

Feasibility test

Theorem (Lehoczky et al. ’89)

If p(τ1) ≤ . . . ≤ p(τn) then the response time r(τi) in a RM-schedule is the smallest value s.t. c(τi) +

  • j<i

r(τi) p(τj)

  • c(τj) ≤ r(τi)

1 machine suffices ⇔ ∀i : r(τi) ≤ p(τi).

slide-9
SLIDE 9

Feasibility test

Theorem (Lehoczky et al. ’89)

If p(τ1) ≤ . . . ≤ p(τn) then the response time r(τi) in a RM-schedule is the smallest value s.t. c(τi) +

  • j<i

r(τi) p(τj)

  • c(τj) ≤ r(τi)

1 machine suffices ⇔ ∀i : r(τi) ≤ p(τi).

Theorem (Eisenbrand & R. ’08)

Computing a response time r(τi) is NP-hard.

slide-10
SLIDE 10

Feasibility test

Theorem (Lehoczky et al. ’89)

If p(τ1) ≤ . . . ≤ p(τn) then the response time r(τi) in a RM-schedule is the smallest value s.t. c(τi) +

  • j<i

r(τi) p(τj)

  • c(τj) ≤ r(τi)

1 machine suffices ⇔ ∀i : r(τi) ≤ p(τi).

Theorem (Eisenbrand & R. ’08)

Computing a response time r(τi) is NP-hard.

Theorem (Liu & Layland ’73)

u(S) =

τ∈S u(τ) ≤ ln(2) ≈ 69% ⇒ 1 machine suffices

slide-11
SLIDE 11

Feasibility test

Theorem (Lehoczky et al. ’89)

If p(τ1) ≤ . . . ≤ p(τn) then the response time r(τi) in a RM-schedule is the smallest value s.t. c(τi) +

  • j<i

r(τi) p(τj)

  • c(τj) ≤ r(τi)

1 machine suffices ⇔ ∀i : r(τi) ≤ p(τi).

Theorem (Eisenbrand & R. ’08)

Computing a response time r(τi) is NP-hard.

Theorem (Liu & Layland ’73)

u(S) =

τ∈S u(τ) ≤ ln(2) ≈ 69% ⇒ 1 machine suffices

Observation

If p(τ1) | p(τ2) | . . . | p(τn): 1 machine suffices ⇔ u(S) ≤ 1

slide-12
SLIDE 12

Feasibility test (2)

Lemma (Burchard et al. ’95)

For tasks S = {τ1, . . . , τn} define

slide-13
SLIDE 13

Feasibility test (2)

Lemma (Burchard et al. ’95)

For tasks S = {τ1, . . . , τn} define α(τi) := log2 p(τi) − ⌊log2 p(τi)⌋

slide-14
SLIDE 14

Feasibility test (2)

Lemma (Burchard et al. ’95)

For tasks S = {τ1, . . . , τn} define α(τi) := log2 p(τi) − ⌊log2 p(τi)⌋ periods 1 2 4 8

slide-15
SLIDE 15

Feasibility test (2)

Lemma (Burchard et al. ’95)

For tasks S = {τ1, . . . , τn} define α(τi) := log2 p(τi) − ⌊log2 p(τi)⌋ periods 1 2 4 8 p(τ1) p(τ2) p(τ3)

slide-16
SLIDE 16

Feasibility test (2)

Lemma (Burchard et al. ’95)

For tasks S = {τ1, . . . , τn} define α(τi) := log2 p(τi) − ⌊log2 p(τi)⌋ periods 1 2 4 8 p(τ1) p(τ2) p(τ3) 1

slide-17
SLIDE 17

Feasibility test (2)

Lemma (Burchard et al. ’95)

For tasks S = {τ1, . . . , τn} define α(τi) := log2 p(τi) − ⌊log2 p(τi)⌋ periods 1 2 4 8 p(τ1) p(τ2) p(τ3) 1 α(τ1)

slide-18
SLIDE 18

Feasibility test (2)

Lemma (Burchard et al. ’95)

For tasks S = {τ1, . . . , τn} define α(τi) := log2 p(τi) − ⌊log2 p(τi)⌋ periods 1 2 4 8 p(τ1) p(τ2) p(τ3) 1 α(τ1) α(τ2)

slide-19
SLIDE 19

Feasibility test (2)

Lemma (Burchard et al. ’95)

For tasks S = {τ1, . . . , τn} define α(τi) := log2 p(τi) − ⌊log2 p(τi)⌋ periods 1 2 4 8 p(τ1) p(τ2) p(τ3) 1 α(τ1) α(τ2) α(τ3)

slide-20
SLIDE 20

Feasibility test (2)

Lemma (Burchard et al. ’95)

For tasks S = {τ1, . . . , τn} define α(τi) := log2 p(τi) − ⌊log2 p(τi)⌋ and β(S) := max

i,j |α(τi) − α(τj)|

periods 1 2 4 8 p(τ1) p(τ2) p(τ3) 1 α(τ1) α(τ2) α(τ3) β

slide-21
SLIDE 21

Feasibility test (2)

Lemma (Burchard et al. ’95)

For tasks S = {τ1, . . . , τn} define α(τi) := log2 p(τi) − ⌊log2 p(τi)⌋ and β(S) := max

i,j |α(τi) − α(τj)|

One machine suffices if u(S) ≤ 1 − β(S). periods 1 2 4 8 p(τ1) p(τ2) p(τ3) 1 α(τ1) α(τ2) α(τ3) β

slide-22
SLIDE 22

Algorithms for Multiprocessor Scheduling

slide-23
SLIDE 23

Algorithms for Multiprocessor Scheduling

Known results:

◮ NP-hard (generalization of Bin Packing)

slide-24
SLIDE 24

Algorithms for Multiprocessor Scheduling

Known results:

◮ NP-hard (generalization of Bin Packing) ◮ asymp. 1.75-apx [Burchard et al. ’95]

slide-25
SLIDE 25

Algorithms for Multiprocessor Scheduling

Known results:

◮ NP-hard (generalization of Bin Packing) ◮ asymp. 1.75-apx [Burchard et al. ’95] ◮ asymp. (1 + ε)-apx (with resource augmentation) in

Oε(1) · n(1/ε)O(1) [Eisenbrand & R. ’08]

slide-26
SLIDE 26

Algorithms for Multiprocessor Scheduling

Known results:

◮ NP-hard (generalization of Bin Packing) ◮ asymp. 1.75-apx [Burchard et al. ’95] ◮ asymp. (1 + ε)-apx (with resource augmentation) in

Oε(1) · n(1/ε)O(1) [Eisenbrand & R. ’08] Some papers:

  • 1. Sort tasks w.r.t. some criteria (e.g. p(τi), u(τi), α(τi))
slide-27
SLIDE 27

Algorithms for Multiprocessor Scheduling

Known results:

◮ NP-hard (generalization of Bin Packing) ◮ asymp. 1.75-apx [Burchard et al. ’95] ◮ asymp. (1 + ε)-apx (with resource augmentation) in

Oε(1) · n(1/ε)O(1) [Eisenbrand & R. ’08] Some papers:

  • 1. Sort tasks w.r.t. some criteria (e.g. p(τi), u(τi), α(τi))
  • 2. Distribute tasks in a First Fit/Next Fit way using a

sufficient feasibility criterion

slide-28
SLIDE 28

Algorithms for Multiprocessor Scheduling

Known results:

◮ NP-hard (generalization of Bin Packing) ◮ asymp. 1.75-apx [Burchard et al. ’95] ◮ asymp. (1 + ε)-apx (with resource augmentation) in

Oε(1) · n(1/ε)O(1) [Eisenbrand & R. ’08] Some papers:

  • 1. Sort tasks w.r.t. some criteria (e.g. p(τi), u(τi), α(τi))
  • 2. Distribute tasks in a First Fit/Next Fit way using a

sufficient feasibility criterion

  • 3. Perform experiments with randomly chosen tasks
slide-29
SLIDE 29

Algorithms for Multiprocessor Scheduling

Known results:

◮ NP-hard (generalization of Bin Packing) ◮ asymp. 1.75-apx [Burchard et al. ’95] ◮ asymp. (1 + ε)-apx (with resource augmentation) in

Oε(1) · n(1/ε)O(1) [Eisenbrand & R. ’08] Some papers:

  • 1. Sort tasks w.r.t. some criteria (e.g. p(τi), u(τi), α(τi))
  • 2. Distribute tasks in a First Fit/Next Fit way using a

sufficient feasibility criterion

  • 3. Perform experiments with randomly chosen tasks

Definition

Probability distribution:

◮ Adversary gives p(τi) ◮ u(τi) ∈ [0, 1] uniformly at random

slide-30
SLIDE 30

Waste

Definition

Waste of a solution: #machines − u(S).

slide-31
SLIDE 31

Waste

Definition

Waste of a solution: #machines − u(S). M1 M2 M3 1

slide-32
SLIDE 32

Waste

Definition

Waste of a solution: #machines − u(S). τ M1 M2 M3 1

slide-33
SLIDE 33

Waste

Definition

Waste of a solution: #machines − u(S). τ M1 M2 M3 u(τ) 1

slide-34
SLIDE 34

Waste

Definition

Waste of a solution: #machines − u(S). τ M1 M2 M3 u(τ) 1 waste

slide-35
SLIDE 35

Our algorithm

First Fit Matching Periods (FFMP):

  • 1. Sort: 0 ≤ α(τ1) ≤ α(τ2) ≤ . . . ≤ α(τn) < 1
  • 2. First Fit: FOR i = 1, . . . , n DO

◮ Assign τi to first machine P with u(P + τi) ≤ 1 − β(P + τi)

slide-36
SLIDE 36

Our algorithm

First Fit Matching Periods (FFMP):

  • 1. Sort: 0 ≤ α(τ1) ≤ α(τ2) ≤ . . . ≤ α(τn) < 1
  • 2. First Fit: FOR i = 1, . . . , n DO

◮ Assign τi to first machine P with u(P + τi) ≤ 1 − β(P + τi)

M1 M2 M3 input u(τ) α ≈ 0 α ≈ 1

slide-37
SLIDE 37

Our algorithm

First Fit Matching Periods (FFMP):

  • 1. Sort: 0 ≤ α(τ1) ≤ α(τ2) ≤ . . . ≤ α(τn) < 1
  • 2. First Fit: FOR i = 1, . . . , n DO

◮ Assign τi to first machine P with u(P + τi) ≤ 1 − β(P + τi)

M1 M2 M3 input u(τ)

slide-38
SLIDE 38

Our algorithm

First Fit Matching Periods (FFMP):

  • 1. Sort: 0 ≤ α(τ1) ≤ α(τ2) ≤ . . . ≤ α(τn) < 1
  • 2. First Fit: FOR i = 1, . . . , n DO

◮ Assign τi to first machine P with u(P + τi) ≤ 1 − β(P + τi)

M1 M2 M3 input u(τ)

slide-39
SLIDE 39

Our algorithm

First Fit Matching Periods (FFMP):

  • 1. Sort: 0 ≤ α(τ1) ≤ α(τ2) ≤ . . . ≤ α(τn) < 1
  • 2. First Fit: FOR i = 1, . . . , n DO

◮ Assign τi to first machine P with u(P + τi) ≤ 1 − β(P + τi)

M1 M2 M3 input u(τ)

slide-40
SLIDE 40

Our algorithm

First Fit Matching Periods (FFMP):

  • 1. Sort: 0 ≤ α(τ1) ≤ α(τ2) ≤ . . . ≤ α(τn) < 1
  • 2. First Fit: FOR i = 1, . . . , n DO

◮ Assign τi to first machine P with u(P + τi) ≤ 1 − β(P + τi)

M1 M2 M3 input u(τ)

slide-41
SLIDE 41

Our algorithm

First Fit Matching Periods (FFMP):

  • 1. Sort: 0 ≤ α(τ1) ≤ α(τ2) ≤ . . . ≤ α(τn) < 1
  • 2. First Fit: FOR i = 1, . . . , n DO

◮ Assign τi to first machine P with u(P + τi) ≤ 1 − β(P + τi)

M1 M2 M3 input u(τ)

slide-42
SLIDE 42

Our algorithm

First Fit Matching Periods (FFMP):

  • 1. Sort: 0 ≤ α(τ1) ≤ α(τ2) ≤ . . . ≤ α(τn) < 1
  • 2. First Fit: FOR i = 1, . . . , n DO

◮ Assign τi to first machine P with u(P + τi) ≤ 1 − β(P + τi)

M1 M2 M3 input u(τ)

slide-43
SLIDE 43

Our algorithm

First Fit Matching Periods (FFMP):

  • 1. Sort: 0 ≤ α(τ1) ≤ α(τ2) ≤ . . . ≤ α(τn) < 1
  • 2. First Fit: FOR i = 1, . . . , n DO

◮ Assign τi to first machine P with u(P + τi) ≤ 1 − β(P + τi)

M1 M2 M3 input u(τ)

slide-44
SLIDE 44

Our algorithm

First Fit Matching Periods (FFMP):

  • 1. Sort: 0 ≤ α(τ1) ≤ α(τ2) ≤ . . . ≤ α(τn) < 1
  • 2. First Fit: FOR i = 1, . . . , n DO

◮ Assign τi to first machine P with u(P + τi) ≤ 1 − β(P + τi)

Running time: O(n log n)

Theorem

For n tasks with u(τi) ∈ [0, 1] uniformly at random E[waste of FFMP] ≤ O(n3/4(log n)3/8) (average utilization → 100%)

slide-45
SLIDE 45

Bin Packing

Given: n items with sizes ai ∈ [0, 1] Find: Assignment to minimum number of bins of size ≤ 1

slide-46
SLIDE 46

Bin Packing

Given: n items with sizes ai ∈ [0, 1] Find: Assignment to minimum number of bins of size ≤ 1 (Restricted) First Fit:

◮ FOR i = 1, . . . , n DO: Assign i to first bin B with

◮ B is empty or ◮ B contains exactly 1 item of size ≥ 1/2 and size(B) + ai ≤ 1

slide-47
SLIDE 47

Bin Packing

Given: n items with sizes ai ∈ [0, 1] Find: Assignment to minimum number of bins of size ≤ 1 (Restricted) First Fit:

◮ FOR i = 1, . . . , n DO: Assign i to first bin B with

◮ B is empty or ◮ B contains exactly 1 item of size ≥ 1/2 and size(B) + ai ≤ 1

bin 1 bin 2 bin 3 input ai 0.5 1

slide-48
SLIDE 48

Bin Packing

Given: n items with sizes ai ∈ [0, 1] Find: Assignment to minimum number of bins of size ≤ 1 (Restricted) First Fit:

◮ FOR i = 1, . . . , n DO: Assign i to first bin B with

◮ B is empty or ◮ B contains exactly 1 item of size ≥ 1/2 and size(B) + ai ≤ 1

bin 1 bin 2 bin 3 input ai 0.5 1

slide-49
SLIDE 49

Bin Packing

Given: n items with sizes ai ∈ [0, 1] Find: Assignment to minimum number of bins of size ≤ 1 (Restricted) First Fit:

◮ FOR i = 1, . . . , n DO: Assign i to first bin B with

◮ B is empty or ◮ B contains exactly 1 item of size ≥ 1/2 and size(B) + ai ≤ 1

bin 1 bin 2 bin 3 input ai 0.5 1

slide-50
SLIDE 50

Bin Packing

Given: n items with sizes ai ∈ [0, 1] Find: Assignment to minimum number of bins of size ≤ 1 (Restricted) First Fit:

◮ FOR i = 1, . . . , n DO: Assign i to first bin B with

◮ B is empty or ◮ B contains exactly 1 item of size ≥ 1/2 and size(B) + ai ≤ 1

bin 1 bin 2 bin 3 input ai 0.5 1

slide-51
SLIDE 51

Bin Packing

Given: n items with sizes ai ∈ [0, 1] Find: Assignment to minimum number of bins of size ≤ 1 (Restricted) First Fit:

◮ FOR i = 1, . . . , n DO: Assign i to first bin B with

◮ B is empty or ◮ B contains exactly 1 item of size ≥ 1/2 and size(B) + ai ≤ 1

bin 1 bin 2 bin 3 input ai 0.5 1

slide-52
SLIDE 52

Bin Packing

Given: n items with sizes ai ∈ [0, 1] Find: Assignment to minimum number of bins of size ≤ 1 (Restricted) First Fit:

◮ FOR i = 1, . . . , n DO: Assign i to first bin B with

◮ B is empty or ◮ B contains exactly 1 item of size ≥ 1/2 and size(B) + ai ≤ 1

Theorem (Shor ’84)

Given n items with ai ∈ [0, 1] uniformly at random E[waste of First Fit] ≤ O(n2/3 log n).

slide-53
SLIDE 53

Bin Packing

Given: n items with sizes ai ∈ [0, 1] Find: Assignment to minimum number of bins of size ≤ 1 (Restricted) First Fit:

◮ FOR i = 1, . . . , n DO: Assign i to first bin B with

◮ B is empty or ◮ B contains exactly 1 item of size ≥ 1/2 and size(B) + ai ≤ 1

Theorem (Shor ’84)

Given n items with ai ∈ [0, 1] uniformly at random E[waste of First Fit] ≤ O(n2/3 log n).

Theorem (Shor ’84)

First Fit is monotone.

slide-54
SLIDE 54

An auxiliary algorithm: FFMP*

  • 1. Sort: 0 ≤ α(τ1) ≤ α(τ2) ≤ . . . ≤ α(τn) < 1
  • 2. Partition: Sj = {τi | j−1

γ

≤ α(τi) < j

γ } → groups

  • 3. First Fit: FOR i = 1, . . . , n DO

◮ Assign τi to first machine P that’s empty or ◮ P contains exactly one task τj and ◮ τj is from the same group & u(τj) ≥ 1 2(1 − 1 γ ) and ◮ u(P + τi) ≤ 1 − 1 γ

slide-55
SLIDE 55

An auxiliary algorithm: FFMP*

  • 1. Sort: 0 ≤ α(τ1) ≤ α(τ2) ≤ . . . ≤ α(τn) < 1
  • 2. Partition: Sj = {τi | j−1

γ

≤ α(τi) < j

γ } → groups

  • 3. First Fit: FOR i = 1, . . . , n DO

◮ Assign τi to first machine P that’s empty or ◮ P contains exactly one task τj and ◮ τj is from the same group & u(τj) ≥ 1 2(1 − 1 γ ) and ◮ u(P + τi) ≤ 1 − 1 γ

M1 M2 M3 M4 M5 input u(τ)

1 2(1 − 1 γ )

1 − 1

γ

slide-56
SLIDE 56

An auxiliary algorithm: FFMP*

  • 1. Sort: 0 ≤ α(τ1) ≤ α(τ2) ≤ . . . ≤ α(τn) < 1
  • 2. Partition: Sj = {τi | j−1

γ

≤ α(τi) < j

γ } → groups

  • 3. First Fit: FOR i = 1, . . . , n DO

◮ Assign τi to first machine P that’s empty or ◮ P contains exactly one task τj and ◮ τj is from the same group & u(τj) ≥ 1 2(1 − 1 γ ) and ◮ u(P + τi) ≤ 1 − 1 γ

M1 M2 M3 M4 M5 input u(τ)

1 2(1 − 1 γ )

1 − 1

γ

slide-57
SLIDE 57

An auxiliary algorithm: FFMP*

  • 1. Sort: 0 ≤ α(τ1) ≤ α(τ2) ≤ . . . ≤ α(τn) < 1
  • 2. Partition: Sj = {τi | j−1

γ

≤ α(τi) < j

γ } → groups

  • 3. First Fit: FOR i = 1, . . . , n DO

◮ Assign τi to first machine P that’s empty or ◮ P contains exactly one task τj and ◮ τj is from the same group & u(τj) ≥ 1 2(1 − 1 γ ) and ◮ u(P + τi) ≤ 1 − 1 γ

M1 M2 M3 M4 M5 S1 S2 input u(τ)

1 2(1 − 1 γ )

1 − 1

γ

slide-58
SLIDE 58

An auxiliary algorithm: FFMP*

  • 1. Sort: 0 ≤ α(τ1) ≤ α(τ2) ≤ . . . ≤ α(τn) < 1
  • 2. Partition: Sj = {τi | j−1

γ

≤ α(τi) < j

γ } → groups

  • 3. First Fit: FOR i = 1, . . . , n DO

◮ Assign τi to first machine P that’s empty or ◮ P contains exactly one task τj and ◮ τj is from the same group & u(τj) ≥ 1 2(1 − 1 γ ) and ◮ u(P + τi) ≤ 1 − 1 γ

M1 M2 M3 M4 M5 S1 S2 input u(τ)

1 2(1 − 1 γ )

1 − 1

γ

slide-59
SLIDE 59

An auxiliary algorithm: FFMP*

  • 1. Sort: 0 ≤ α(τ1) ≤ α(τ2) ≤ . . . ≤ α(τn) < 1
  • 2. Partition: Sj = {τi | j−1

γ

≤ α(τi) < j

γ } → groups

  • 3. First Fit: FOR i = 1, . . . , n DO

◮ Assign τi to first machine P that’s empty or ◮ P contains exactly one task τj and ◮ τj is from the same group & u(τj) ≥ 1 2(1 − 1 γ ) and ◮ u(P + τi) ≤ 1 − 1 γ

M1 M2 M3 M4 M5 S1 S2 input u(τ)

1 2(1 − 1 γ )

1 − 1

γ

slide-60
SLIDE 60

An auxiliary algorithm: FFMP*

  • 1. Sort: 0 ≤ α(τ1) ≤ α(τ2) ≤ . . . ≤ α(τn) < 1
  • 2. Partition: Sj = {τi | j−1

γ

≤ α(τi) < j

γ } → groups

  • 3. First Fit: FOR i = 1, . . . , n DO

◮ Assign τi to first machine P that’s empty or ◮ P contains exactly one task τj and ◮ τj is from the same group & u(τj) ≥ 1 2(1 − 1 γ ) and ◮ u(P + τi) ≤ 1 − 1 γ

M1 M2 M3 M4 M5 S1 S2 input u(τ)

1 2(1 − 1 γ )

1 − 1

γ

slide-61
SLIDE 61

An auxiliary algorithm: FFMP*

  • 1. Sort: 0 ≤ α(τ1) ≤ α(τ2) ≤ . . . ≤ α(τn) < 1
  • 2. Partition: Sj = {τi | j−1

γ

≤ α(τi) < j

γ } → groups

  • 3. First Fit: FOR i = 1, . . . , n DO

◮ Assign τi to first machine P that’s empty or ◮ P contains exactly one task τj and ◮ τj is from the same group & u(τj) ≥ 1 2(1 − 1 γ ) and ◮ u(P + τi) ≤ 1 − 1 γ

M1 M2 M3 M4 M5 S1 S2 input u(τ)

1 2(1 − 1 γ )

1 − 1

γ

slide-62
SLIDE 62

An auxiliary algorithm: FFMP*

  • 1. Sort: 0 ≤ α(τ1) ≤ α(τ2) ≤ . . . ≤ α(τn) < 1
  • 2. Partition: Sj = {τi | j−1

γ

≤ α(τi) < j

γ } → groups

  • 3. First Fit: FOR i = 1, . . . , n DO

◮ Assign τi to first machine P that’s empty or ◮ P contains exactly one task τj and ◮ τj is from the same group & u(τj) ≥ 1 2(1 − 1 γ ) and ◮ u(P + τi) ≤ 1 − 1 γ

M1 M2 M3 M4 M5 S1 S2 input u(τ)

1 2(1 − 1 γ )

1 − 1

γ

slide-63
SLIDE 63

An auxiliary algorithm: FFMP*

  • 1. Sort: 0 ≤ α(τ1) ≤ α(τ2) ≤ . . . ≤ α(τn) < 1
  • 2. Partition: Sj = {τi | j−1

γ

≤ α(τi) < j

γ } → groups

  • 3. First Fit: FOR i = 1, . . . , n DO

◮ Assign τi to first machine P that’s empty or ◮ P contains exactly one task τj and ◮ τj is from the same group & u(τj) ≥ 1 2(1 − 1 γ ) and ◮ u(P + τi) ≤ 1 − 1 γ

M1 M2 M3 M4 M5 S1 S2 input u(τ)

1 2(1 − 1 γ )

1 − 1

γ

slide-64
SLIDE 64

FFMP* vs. First Fit

τi from the same group & u(τi) ≤ 1 − 1

γ

items ai := u(τi)/(1 − 1

γ )

M1 M2 M3

1 2(1 − 1 γ )

1 − 1

γ

bin 1 bin 2 bin 3

1 2

1

slide-65
SLIDE 65

FFMP* vs. First Fit

τi from the same group & u(τi) ≤ 1 − 1

γ

items ai := u(τi)/(1 − 1

γ )

M1 M2 M3

1 2(1 − 1 γ )

1 − 1

γ

bin 1 bin 2 bin 3

1 2

1

◮ FFMP∗ = First Fit

slide-66
SLIDE 66

FFMP* vs. First Fit

τi from the same group & u(τi) ≤ 1 − 1

γ

items ai := u(τi)/(1 − 1

γ )

M1 M2 M3

1 2(1 − 1 γ )

1 − 1

γ

bin 1 bin 2 bin 3

1 2

1

◮ FFMP∗ = First Fit

Corollary

FFMP∗ is monotone.

slide-67
SLIDE 67

Consequences

Lemma

For any task set S : FFMP(S) ≤ FFMP∗(S)

slide-68
SLIDE 68

Consequences

Lemma

For any task set S : FFMP(S) ≤ FFMP∗(S)

◮ Consider schedule of S w.r.t. FFMP.

M1 M2 M3 M4

slide-69
SLIDE 69

Consequences

Lemma

For any task set S : FFMP(S) ≤ FFMP∗(S)

◮ Consider schedule of S w.r.t. FFMP. ◮ Delete tasks that FFMP∗ would have scheduled differently

M1 M2 M3 M4

1 2(1 − 1 γ )

1 − 1

γ

slide-70
SLIDE 70

Consequences

Lemma

For any task set S : FFMP(S) ≤ FFMP∗(S)

◮ Consider schedule of S w.r.t. FFMP. ◮ Delete tasks that FFMP∗ would have scheduled differently

M1 M2 M3 M4

1 2(1 − 1 γ )

1 − 1

γ

slide-71
SLIDE 71

Consequences

Lemma

For any task set S : FFMP(S) ≤ FFMP∗(S)

◮ Consider schedule of S w.r.t. FFMP. ◮ Delete tasks that FFMP∗ would have scheduled differently

M1 M2 M3 M4

1 2(1 − 1 γ )

1 − 1

γ

slide-72
SLIDE 72

Consequences

Lemma

For any task set S : FFMP(S) ≤ FFMP∗(S)

◮ Consider schedule of S w.r.t. FFMP. ◮ Delete tasks that FFMP∗ would have scheduled differently

M1 M2 M3 M4

1 2(1 − 1 γ )

1 − 1

γ

slide-73
SLIDE 73

Consequences

Lemma

For any task set S : FFMP(S) ≤ FFMP∗(S)

◮ Consider schedule of S w.r.t. FFMP. ◮ Delete tasks that FFMP∗ would have scheduled differently

→ S′ ⊆ S M1 M2 M3 M4

1 2(1 − 1 γ )

1 − 1

γ

slide-74
SLIDE 74

Consequences

Lemma

For any task set S : FFMP(S) ≤ FFMP∗(S)

◮ Consider schedule of S w.r.t. FFMP. ◮ Delete tasks that FFMP∗ would have scheduled differently

→ S′ ⊆ S FFMP(S) = FFMP∗(S′) M1 M2 M3 M4

1 2(1 − 1 γ )

1 − 1

γ

slide-75
SLIDE 75

Consequences

Lemma

For any task set S : FFMP(S) ≤ FFMP∗(S)

◮ Consider schedule of S w.r.t. FFMP. ◮ Delete tasks that FFMP∗ would have scheduled differently

→ S′ ⊆ S FFMP(S) = FFMP∗(S′)

monotonicity

≤ FFMP∗(S) M1 M2 M3 M4

1 2(1 − 1 γ )

1 − 1

γ

slide-76
SLIDE 76

Main result

Theorem

E[waste of FFMP∗] ≤ O(n3/4(log n)3/8)

slide-77
SLIDE 77

Main result

Theorem

E[waste of FFMP∗] ≤ O(n3/4(log n)3/8)

◮ f(m) := O(m2/3√log m) expected waste of First Fit

slide-78
SLIDE 78

Main result

Theorem

E[waste of FFMP∗] ≤ O(n3/4(log n)3/8)

◮ f(m) := O(m2/3√log m) expected waste of First Fit ◮ S′ j := {τi ∈ Sj | u(τi) ≤ 1 − 1 γ } not too big tasks

slide-79
SLIDE 79

Main result

Theorem

E[waste of FFMP∗] ≤ O(n3/4(log n)3/8)

◮ f(m) := O(m2/3√log m) expected waste of First Fit ◮ S′ j := {τi ∈ Sj | u(τi) ≤ 1 − 1 γ } not too big tasks ◮ Ij := {ai := u(τi)/(1 − 1 γ ) | τi ∈ S′ j}

slide-80
SLIDE 80

Main result

Theorem

E[waste of FFMP∗] ≤ O(n3/4(log n)3/8)

◮ f(m) := O(m2/3√log m) expected waste of First Fit ◮ S′ j := {τi ∈ Sj | u(τi) ≤ 1 − 1 γ } not too big tasks ◮ Ij := {ai := u(τi)/(1 − 1 γ ) | τi ∈ S′ j} ◮ ∀τi ∈ S′ j : u(τi) ∈ [0, 1 − 1 γ ] uniform ⇒ ai ∈ [0, 1] uniform

slide-81
SLIDE 81

Main result

Theorem

E[waste of FFMP∗] ≤ O(n3/4(log n)3/8)

◮ f(m) := O(m2/3√log m) expected waste of First Fit ◮ S′ j := {τi ∈ Sj | u(τi) ≤ 1 − 1 γ } not too big tasks ◮ Ij := {ai := u(τi)/(1 − 1 γ ) | τi ∈ S′ j} ◮ ∀τi ∈ S′ j : u(τi) ∈ [0, 1 − 1 γ ] uniform ⇒ ai ∈ [0, 1] uniform

E[waste of FFMP∗(Sj)]

slide-82
SLIDE 82

Main result

Theorem

E[waste of FFMP∗] ≤ O(n3/4(log n)3/8)

◮ f(m) := O(m2/3√log m) expected waste of First Fit ◮ S′ j := {τi ∈ Sj | u(τi) ≤ 1 − 1 γ } not too big tasks ◮ Ij := {ai := u(τi)/(1 − 1 γ ) | τi ∈ S′ j} ◮ ∀τi ∈ S′ j : u(τi) ∈ [0, 1 − 1 γ ] uniform ⇒ ai ∈ [0, 1] uniform

E[waste of FFMP∗(Sj)] ≤ |Sj| · 1 γ + E[waste of FirstFit(Ij)]

slide-83
SLIDE 83

Main result

Theorem

E[waste of FFMP∗] ≤ O(n3/4(log n)3/8)

◮ f(m) := O(m2/3√log m) expected waste of First Fit ◮ S′ j := {τi ∈ Sj | u(τi) ≤ 1 − 1 γ } not too big tasks ◮ Ij := {ai := u(τi)/(1 − 1 γ ) | τi ∈ S′ j} ◮ ∀τi ∈ S′ j : u(τi) ∈ [0, 1 − 1 γ ] uniform ⇒ ai ∈ [0, 1] uniform

E[waste of FFMP∗(Sj)] ≤ |Sj| · 1 γ + E[waste of FirstFit(Ij)] ≤ |Sj| γ + f(|Ij|)

slide-84
SLIDE 84

Main result

Theorem

E[waste of FFMP∗] ≤ O(n3/4(log n)3/8)

◮ f(m) := O(m2/3√log m) expected waste of First Fit ◮ S′ j := {τi ∈ Sj | u(τi) ≤ 1 − 1 γ } not too big tasks ◮ Ij := {ai := u(τi)/(1 − 1 γ ) | τi ∈ S′ j} ◮ ∀τi ∈ S′ j : u(τi) ∈ [0, 1 − 1 γ ] uniform ⇒ ai ∈ [0, 1] uniform

E[waste of FFMP∗(Sj)] ≤ |Sj| · 1 γ + E[waste of FirstFit(Ij)] ≤ |Sj| γ + f(|Ij|) ≤ |Sj| γ + f(|Sj|)

slide-85
SLIDE 85

Main result

Theorem

E[waste of FFMP∗] ≤ O(n3/4(log n)3/8)

◮ f(m) := O(m2/3√log m) expected waste of First Fit ◮ S′ j := {τi ∈ Sj | u(τi) ≤ 1 − 1 γ } not too big tasks ◮ Ij := {ai := u(τi)/(1 − 1 γ ) | τi ∈ S′ j} ◮ ∀τi ∈ S′ j : u(τi) ∈ [0, 1 − 1 γ ] uniform ⇒ ai ∈ [0, 1] uniform

E[waste of FFMP∗(Sj)] ≤ |Sj| · 1 γ + E[waste of FirstFit(Ij)] ≤ |Sj| γ + f(|Ij|) ≤ |Sj| γ + f(|Sj|) E[waste of FFMP∗(S)]

slide-86
SLIDE 86

Main result

Theorem

E[waste of FFMP∗] ≤ O(n3/4(log n)3/8)

◮ f(m) := O(m2/3√log m) expected waste of First Fit ◮ S′ j := {τi ∈ Sj | u(τi) ≤ 1 − 1 γ } not too big tasks ◮ Ij := {ai := u(τi)/(1 − 1 γ ) | τi ∈ S′ j} ◮ ∀τi ∈ S′ j : u(τi) ∈ [0, 1 − 1 γ ] uniform ⇒ ai ∈ [0, 1] uniform

E[waste of FFMP∗(Sj)] ≤ |Sj| · 1 γ + E[waste of FirstFit(Ij)] ≤ |Sj| γ + f(|Ij|) ≤ |Sj| γ + f(|Sj|) E[waste of FFMP∗(S)] ≤

γ

  • j=1

|Sj| γ + f(|Sj|)

slide-87
SLIDE 87

Main result

Theorem

E[waste of FFMP∗] ≤ O(n3/4(log n)3/8)

◮ f(m) := O(m2/3√log m) expected waste of First Fit ◮ S′ j := {τi ∈ Sj | u(τi) ≤ 1 − 1 γ } not too big tasks ◮ Ij := {ai := u(τi)/(1 − 1 γ ) | τi ∈ S′ j} ◮ ∀τi ∈ S′ j : u(τi) ∈ [0, 1 − 1 γ ] uniform ⇒ ai ∈ [0, 1] uniform

E[waste of FFMP∗(Sj)] ≤ |Sj| · 1 γ + E[waste of FirstFit(Ij)] ≤ |Sj| γ + f(|Ij|) ≤ |Sj| γ + f(|Sj|) E[waste of FFMP∗(S)] ≤

γ

  • j=1

|Sj| γ + f(|Sj|)

  • Jensen

≤ n γ + γ · f(n/γ)

slide-88
SLIDE 88

Main result

Theorem

E[waste of FFMP∗] ≤ O(n3/4(log n)3/8)

◮ f(m) := O(m2/3√log m) expected waste of First Fit ◮ S′ j := {τi ∈ Sj | u(τi) ≤ 1 − 1 γ } not too big tasks ◮ Ij := {ai := u(τi)/(1 − 1 γ ) | τi ∈ S′ j} ◮ ∀τi ∈ S′ j : u(τi) ∈ [0, 1 − 1 γ ] uniform ⇒ ai ∈ [0, 1] uniform

E[waste of FFMP∗(Sj)] ≤ |Sj| · 1 γ + E[waste of FirstFit(Ij)] ≤ |Sj| γ + f(|Ij|) ≤ |Sj| γ + f(|Sj|) E[waste of FFMP∗(S)] ≤

γ

  • j=1

|Sj| γ + f(|Sj|)

  • Jensen

≤ n γ + γ · f(n/γ)

γ:=n1/4/(log n)3/8

≤ O(n3/4(log n)3/8)

slide-89
SLIDE 89

Open problems

◮ Problem: Is there an asymptotic PTAS for Multiprocessor

Real-time scheduling?

slide-90
SLIDE 90

Open problems

◮ Problem: Is there an asymptotic PTAS for Multiprocessor

Real-time scheduling?

Thanks for your attention