# Introduction to Scheduling Theory

Save this PDF as:

Size: px
Start display at page:

## Transcription

1 Introduction to Scheduling Theory Arnaud Legrand Laboratoire Informatique et Distribution IMAG CNRS, France November 8, / 26

2 Outline 1 Task graphs from outer space 2 Scheduling definitions and notions 3 Platform models and scheduling problems 2/ 26

3 Outline 1 Task graphs from outer space 2 Scheduling definitions and notions 3 Platform models and scheduling problems 3/ 26

4 Analyzing a simple code Solving A.x = B where A is lower triangular matrix 1: for i = 1 to n do 2: Task T i,i : x(i) b(i)/a(i, i) 3: for j = i + 1 to n do 4: Task T i,j : b(j) b(j) a(j, i) x(i) For a given value 1 i n, all tasks T i, are computations done during the i th iteration of the outer loop. < seq is the sequential order : T 1,1 < seq T 1,2 < seq T 1,3 < seq...< seq T 1,n < seq T 2,2 < seq T 2,3 < seq...< seq T n,n. 4/ 26

5 Analyzing a simple code Solving A.x = B where A is lower triangular matrix 1: for i = 1 to n do 2: Task T i,i : x(i) b(i)/a(i, i) 3: for j = i + 1 to n do 4: Task T i,j : b(j) b(j) a(j, i) x(i) For a given value 1 i n, all tasks T i, are computations done during the i th iteration of the outer loop. < seq is the sequential order : T 1,1 < seq T 1,2 < seq T 1,3 < seq...< seq T 1,n < seq T 2,2 < seq T 2,3 < seq...< seq T n,n. 4/ 26

6 Analyzing a simple code Solving A.x = B where A is lower triangular matrix 1: for i = 1 to n do 2: Task T i,i : x(i) b(i)/a(i, i) 3: for j = i + 1 to n do 4: Task T i,j : b(j) b(j) a(j, i) x(i) For a given value 1 i n, all tasks T i, are computations done during the i th iteration of the outer loop. < seq is the sequential order : T 1,1 < seq T 1,2 < seq T 1,3 < seq...< seq T 1,n < seq T 2,2 < seq T 2,3 < seq...< seq T n,n. 4/ 26

7 Independence However, some independent tasks could be executed in parallel. Independent tasks are the ones whose execution order can be changed without modifying the result of the program. Two independent tasks may read the value but never write to the same memory location. For a given task T, In(T ) denotes the set of input variables and Out(T ) the set of output variables. { In the previous example, we have : In(T i,i ) = {b(i), a(i, i)} for i = 1 to N do Out(T i,i ) = {x(i)} and Task T i,i : x(i) b(i)/a(i, i) { for j = i + 1 to N do In(T i,j ) = {b(j), a(j, i), x(i)} Task T i,j : b(j) b(j) a(j, i) x(i) Out(T i,j ) = {b(j)} for j > i. 5/ 26

8 Independence However, some independent tasks could be executed in parallel. Independent tasks are the ones whose execution order can be changed without modifying the result of the program. Two independent tasks may read the value but never write to the same memory location. For a given task T, In(T ) denotes the set of input variables and Out(T ) the set of output variables. { In the previous example, we have : In(T i,i ) = {b(i), a(i, i)} for i = 1 to N do Out(T i,i ) = {x(i)} and Task T i,i : x(i) b(i)/a(i, i) { for j = i + 1 to N do In(T i,j ) = {b(j), a(j, i), x(i)} Task T i,j : b(j) b(j) a(j, i) x(i) Out(T i,j ) = {b(j)} for j > i. 5/ 26

9 Independence However, some independent tasks could be executed in parallel. Independent tasks are the ones whose execution order can be changed without modifying the result of the program. Two independent tasks may read the value but never write to the same memory location. For a given task T, In(T ) denotes the set of input variables and Out(T ) the set of output variables. { In the previous example, we have : In(T i,i ) = {b(i), a(i, i)} for i = 1 to N do Out(T i,i ) = {x(i)} and Task T i,i : x(i) b(i)/a(i, i) { for j = i + 1 to N do In(T i,j ) = {b(j), a(j, i), x(i)} Task T i,j : b(j) b(j) a(j, i) x(i) Out(T i,j ) = {b(j)} for j > i. 5/ 26

10 Bernstein conditions Definition. Two tasks T and T are not independent ( T T ) whenever they share a written variable: In(T ) Out(T ) T T or Out(T ) In(T ). or Out(T ) Out(T ) Those conditions are known as Bernstein s conditions [Ber66]. We can check that: Out(T 1,1 ) In(T 1,2 ) = {x(1)} T 1,1 T 1,2. Out(T 1,3 ) Out(T 2,3 ) = {b(3)} T 1,3 T 2,3. for i = 1 to N do Task T i,i: x(i) b(i)/a(i, i) for j = i + 1 to N do Task T i,j: b(j) b(j) a(j, i) x(i) 6/ 26

11 Bernstein conditions Definition. Two tasks T and T are not independent ( T T ) whenever they share a written variable: In(T ) Out(T ) T T or Out(T ) In(T ). or Out(T ) Out(T ) Those conditions are known as Bernstein s conditions [Ber66]. We can check that: Out(T 1,1 ) In(T 1,2 ) = {x(1)} T 1,1 T 1,2. Out(T 1,3 ) Out(T 2,3 ) = {b(3)} T 1,3 T 2,3. for i = 1 to N do Task T i,i: x(i) b(i)/a(i, i) for j = i + 1 to N do Task T i,j: b(j) b(j) a(j, i) x(i) 6/ 26

12 Bernstein conditions Definition. Two tasks T and T are not independent ( T T ) whenever they share a written variable: In(T ) Out(T ) T T or Out(T ) In(T ). or Out(T ) Out(T ) Those conditions are known as Bernstein s conditions [Ber66]. We can check that: Out(T 1,1 ) In(T 1,2 ) = {x(1)} T 1,1 T 1,2. Out(T 1,3 ) Out(T 2,3 ) = {b(3)} T 1,3 T 2,3. for i = 1 to N do Task T i,i: x(i) b(i)/a(i, i) for j = i + 1 to N do Task T i,j: b(j) b(j) a(j, i) x(i) 6/ 26

13 Bernstein conditions Definition. Two tasks T and T are not independent ( T T ) whenever they share a written variable: In(T ) Out(T ) T T or Out(T ) In(T ). or Out(T ) Out(T ) Those conditions are known as Bernstein s conditions [Ber66]. We can check that: Out(T 1,1 ) In(T 1,2 ) = {x(1)} T 1,1 T 1,2. Out(T 1,3 ) Out(T 2,3 ) = {b(3)} T 1,3 T 2,3. for i = 1 to N do Task T i,i: x(i) b(i)/a(i, i) for j = i + 1 to N do Task T i,j: b(j) b(j) a(j, i) x(i) 6/ 26

14 Precedence If T T, then they should be ordered with the sequential execution order. T T if T T and T < seq T. More precisely is defined as the transitive closure of (< seq ). T 1,1 for i = 1 to N do Task T i,i: x(i) b(i)/a(i, i) for j = i + 1 to N do Task T i,j: b(j) b(j) a(j, i) x(i) A dependence graph G is used. (e : T T ) G means that T can start only if T has already been finished. T is a predecessor of T. Transitivity arc are generally omitted. T 1,2 T 1,3 T 1,4 T 1,5 T 1,6 T 2,2 T 2,3 T 2,4 T 2,5 T 2,6 T 3,3 T 3,4 T 3,5 T 3,6 T 4,4 T 4,5 T 5,5 T 4,6 T 5,6 T 6,6 7/ 26

15 Precedence If T T, then they should be ordered with the sequential execution order. T T if T T and T < seq T. More precisely is defined as the transitive closure of (< seq ). T 1,1 for i = 1 to N do Task T i,i: x(i) b(i)/a(i, i) for j = i + 1 to N do Task T i,j: b(j) b(j) a(j, i) x(i) A dependence graph G is used. (e : T T ) G means that T can start only if T has already been finished. T is a predecessor of T. Transitivity arc are generally omitted. T 1,2 T 1,3 T 1,4 T 1,5 T 1,6 T 2,2 T 2,3 T 2,4 T 2,5 T 2,6 T 3,3 T 3,4 T 3,5 T 3,6 T 4,4 T 4,5 T 5,5 T 4,6 T 5,6 T 6,6 7/ 26

16 Precedence If T T, then they should be ordered with the sequential execution order. T T if T T and T < seq T. More precisely is defined as the transitive closure of (< seq ). T 1,1 for i = 1 to N do Task T i,i: x(i) b(i)/a(i, i) for j = i + 1 to N do Task T i,j: b(j) b(j) a(j, i) x(i) A dependence graph G is used. (e : T T ) G means that T can start only if T has already been finished. T is a predecessor of T. Transitivity arc are generally omitted. T 1,2 T 1,3 T 1,4 T 1,5 T 1,6 T 2,2 T 2,3 T 2,4 T 2,5 T 2,6 T 3,3 T 3,4 T 3,5 T 3,6 T 4,4 T 4,5 T 5,5 T 4,6 T 5,6 T 6,6 7/ 26

17 Precedence If T T, then they should be ordered with the sequential execution order. T T if T T and T < seq T. More precisely is defined as the transitive closure of (< seq ). T 1,1 for i = 1 to N do Task T i,i: x(i) b(i)/a(i, i) for j = i + 1 to N do Task T i,j: b(j) b(j) a(j, i) x(i) A dependence graph G is used. (e : T T ) G means that T can start only if T has already been finished. T is a predecessor of T. Transitivity arc are generally omitted. T 1,2 T 1,3 T 1,4 T 1,5 T 1,6 T 2,2 T 2,3 T 2,4 T 2,5 T 2,6 T 3,3 T 3,4 T 3,5 T 3,6 T 4,4 T 4,5 T 5,5 T 4,6 T 5,6 T 6,6 7/ 26

18 Coarse-grain task graph Task-graph do not necessarily come from instruction-level analysis. scan(proteins p) (termgo: ) scan(proteinterms t) (termgo: ) select p.proteinid, blast(p.sequence) from proteins p, proteinterms t where p.proteinid = t.proteinid and t.term = GO: project (p.proteinid,p.sequence) exchange project (t.proteinid) exchange join (p.proteinid=t.proteinid) exchange operation call (blast(p.sequence)) project (p.proteinid,blast) Each task may be parallel, preemptable, divisible,... Each edge depicts a dependency i.e. most of the times some data to transfer. In the following, we will focus on simple models. 8/ 26

19 Coarse-grain task graph Task-graph do not necessarily come from instruction-level analysis. scan(proteins p) (termgo: ) scan(proteinterms t) (termgo: ) select p.proteinid, blast(p.sequence) from proteins p, proteinterms t where p.proteinid = t.proteinid and t.term = GO: project (p.proteinid,p.sequence) exchange project (t.proteinid) exchange join (p.proteinid=t.proteinid) exchange operation call (blast(p.sequence)) project (p.proteinid,blast) Each task may be parallel, preemptable, divisible,... Each edge depicts a dependency i.e. most of the times some data to transfer. In the following, we will focus on simple models. 8/ 26

20 Coarse-grain task graph Task-graph do not necessarily come from instruction-level analysis. scan(proteins p) (termgo: ) scan(proteinterms t) (termgo: ) select p.proteinid, blast(p.sequence) from proteins p, proteinterms t where p.proteinid = t.proteinid and t.term = GO: project (p.proteinid,p.sequence) exchange project (t.proteinid) exchange join (p.proteinid=t.proteinid) exchange operation call (blast(p.sequence)) project (p.proteinid,blast) Each task may be parallel, preemptable, divisible,... Each edge depicts a dependency i.e. most of the times some data to transfer. In the following, we will focus on simple models. 8/ 26

21 Coarse-grain task graph Task-graph do not necessarily come from instruction-level analysis. scan(proteins p) (termgo: ) scan(proteinterms t) (termgo: ) select p.proteinid, blast(p.sequence) from proteins p, proteinterms t where p.proteinid = t.proteinid and t.term = GO: project (p.proteinid,p.sequence) exchange project (t.proteinid) exchange join (p.proteinid=t.proteinid) exchange operation call (blast(p.sequence)) project (p.proteinid,blast) Each task may be parallel, preemptable, divisible,... Each edge depicts a dependency i.e. most of the times some data to transfer. In the following, we will focus on simple models. 8/ 26

22 Outline 1 Task graphs from outer space 2 Scheduling definitions and notions 3 Platform models and scheduling problems 9/ 26

23 Task system Definition (Task system). A task system is an directed graph G = (V, E, w) where : V is the set of tasks (V is finite) E represent the dependence constraints: e = (u, v) E iff u v w : V N is a time function that give the weight (or duration) of each task. T1,1 T1,2 T1,3 T1,4 T1,5 T1,6 We could set w(t i,j ) = 1 but also decide that performing a division is more expensive than a multiplication followed by an addition. T2,2 T2,3 T2,4 T2,5 T2,6 T3,3 T3,4 T3,5 T3,6 T4,4 T4,5 T5,5 T4,6 T5,6 T6,6 10/ 26

24 Task system Definition (Task system). A task system is an directed graph G = (V, E, w) where : V is the set of tasks (V is finite) E represent the dependence constraints: e = (u, v) E iff u v w : V N is a time function that give the weight (or duration) of each task. T1,1 T1,2 T1,3 T1,4 T1,5 T1,6 We could set w(t i,j ) = 1 but also decide that performing a division is more expensive than a multiplication followed by an addition. T2,2 T2,3 T2,4 T2,5 T2,6 T3,3 T3,4 T3,5 T3,6 T4,4 T4,5 T5,5 T4,6 T5,6 T6,6 10/ 26

25 Schedule and Allocation Definition (Schedule). A schedule of a task system G = (V, E, w) is a time function σ : V N such that: (u, v) E, σ(u) + w(u) σ(v) Let us denote by P = {P 1,..., P p } the set of processors. Definition (Allocation). An allocation of a task system G = (V, E, w) is a function π : V P such that: { π(t ) = π(t σ(t ) + w(t ) σ(t ) or ) σ(t ) + w(t ) σ(t ) Depending on the application and platform model, much more complex definitions can be proposed. 11/ 26

26 Schedule and Allocation Definition (Schedule). A schedule of a task system G = (V, E, w) is a time function σ : V N such that: (u, v) E, σ(u) + w(u) σ(v) Let us denote by P = {P 1,..., P p } the set of processors. Definition (Allocation). An allocation of a task system G = (V, E, w) is a function π : V P such that: { π(t ) = π(t σ(t ) + w(t ) σ(t ) or ) σ(t ) + w(t ) σ(t ) Depending on the application and platform model, much more complex definitions can be proposed. 11/ 26

27 Schedule and Allocation Definition (Schedule). A schedule of a task system G = (V, E, w) is a time function σ : V N such that: (u, v) E, σ(u) + w(u) σ(v) Let us denote by P = {P 1,..., P p } the set of processors. Definition (Allocation). An allocation of a task system G = (V, E, w) is a function π : V P such that: { π(t ) = π(t σ(t ) + w(t ) σ(t ) or ) σ(t ) + w(t ) σ(t ) Depending on the application and platform model, much more complex definitions can be proposed. 11/ 26

28 Gantt-chart Manipulating functions is generally not very convenient. That is why Gantt-chart are used to depict schedules and allocations. T 1 Processors T 2 T 3 T 4 P 3 P 2 T 5 T 6 T 7 P 1 Time T 8 12/ 26

29 Basic feasibility condition Theorem. Let G = (V, E, w) be a task system. There exists a valid schedule of G iff G has no cycle. Sketch of the proof. Assume that G has a cycle v 1 v 2... v k v 1. Then v 1 v 1 and a valid schedule σ should hold σ(v 1 ) + w(v 1 ) σ(v 1 ) true, which is impossible because w(v 1 ) > 0. If G is acyclic, then some tasks have no predecessor. They can be scheduled first. More precisely, we sort topologically the vertexes and schedule them one after the other on the same processor. Dependences are then fulfilled. Therefore all task systems we will be considering in the following are Directed Acyclic Graphs. 13/ 26

30 Basic feasibility condition Theorem. Let G = (V, E, w) be a task system. There exists a valid schedule of G iff G has no cycle. Sketch of the proof. Assume that G has a cycle v 1 v 2... v k v 1. Then v 1 v 1 and a valid schedule σ should hold σ(v 1 ) + w(v 1 ) σ(v 1 ) true, which is impossible because w(v 1 ) > 0. If G is acyclic, then some tasks have no predecessor. They can be scheduled first. More precisely, we sort topologically the vertexes and schedule them one after the other on the same processor. Dependences are then fulfilled. Therefore all task systems we will be considering in the following are Directed Acyclic Graphs. 13/ 26

31 Basic feasibility condition Theorem. Let G = (V, E, w) be a task system. There exists a valid schedule of G iff G has no cycle. Sketch of the proof. Assume that G has a cycle v 1 v 2... v k v 1. Then v 1 v 1 and a valid schedule σ should hold σ(v 1 ) + w(v 1 ) σ(v 1 ) true, which is impossible because w(v 1 ) > 0. If G is acyclic, then some tasks have no predecessor. They can be scheduled first. More precisely, we sort topologically the vertexes and schedule them one after the other on the same processor. Dependences are then fulfilled. Therefore all task systems we will be considering in the following are Directed Acyclic Graphs. 13/ 26

32 Makespan Definition (Makespan). The makespan of a schedule is the total execution time : Processors P3 MS(σ) = max{σ(v) + w(v)} min {σ(v)}. v V v V The makespan is also often referred as C max in the literature. P2 P1 Time C max = max v V C v P b(p): find a schedule with the smallest possible makespan, using at most p processors. MS opt (p) denotes the optimal makespan using only p processors. P b( ): find a schedule with the smallest makespan when the number of processors that can be used is not bounded. We note MS opt ( ) the corresponding makespan. 14/ 26

33 Makespan Definition (Makespan). The makespan of a schedule is the total execution time : Processors P3 MS(σ) = max{σ(v) + w(v)} min {σ(v)}. v V v V The makespan is also often referred as C max in the literature. P2 P1 Time C max = max v V C v P b(p): find a schedule with the smallest possible makespan, using at most p processors. MS opt (p) denotes the optimal makespan using only p processors. P b( ): find a schedule with the smallest makespan when the number of processors that can be used is not bounded. We note MS opt ( ) the corresponding makespan. 14/ 26

34 Makespan Definition (Makespan). The makespan of a schedule is the total execution time : Processors P3 MS(σ) = max{σ(v) + w(v)} min {σ(v)}. v V v V The makespan is also often referred as C max in the literature. P2 P1 Time C max = max v V C v P b(p): find a schedule with the smallest possible makespan, using at most p processors. MS opt (p) denotes the optimal makespan using only p processors. P b( ): find a schedule with the smallest makespan when the number of processors that can be used is not bounded. We note MS opt ( ) the corresponding makespan. 14/ 26

35 Critical path Let Φ = (T 1, T 2,..., T n ) be a path in G. w can be extended to paths in the following way : Lemma. w(φ) = n i=1 w(t i) Let G = (V, E, w) be a DAG and σ p a schedule of G using p processors. For any path Φ in G, we have MS(σ p ) w(φ). Proof. Let Φ = (T 1, T 2,..., T n ) be a path in G: (T i, T i+1 ) E for 1 i < n. Therefore we have σ p (T i ) + w(t i ) σ p (T i+1 ) for 1 i < n, hence n MS(σ p ) w(t n ) + σ p (T n ) σ p (T 1 ) w(t i ) = w(φ). i=1 15/ 26

36 Critical path Let Φ = (T 1, T 2,..., T n ) be a path in G. w can be extended to paths in the following way : Lemma. w(φ) = n i=1 w(t i) Let G = (V, E, w) be a DAG and σ p a schedule of G using p processors. For any path Φ in G, we have MS(σ p ) w(φ). Proof. Let Φ = (T 1, T 2,..., T n ) be a path in G: (T i, T i+1 ) E for 1 i < n. Therefore we have σ p (T i ) + w(t i ) σ p (T i+1 ) for 1 i < n, hence n MS(σ p ) w(t n ) + σ p (T n ) σ p (T 1 ) w(t i ) = w(φ). i=1 15/ 26

37 Critical path Let Φ = (T 1, T 2,..., T n ) be a path in G. w can be extended to paths in the following way : Lemma. w(φ) = n i=1 w(t i) Let G = (V, E, w) be a DAG and σ p a schedule of G using p processors. For any path Φ in G, we have MS(σ p ) w(φ). Proof. Let Φ = (T 1, T 2,..., T n ) be a path in G: (T i, T i+1 ) E for 1 i < n. Therefore we have σ p (T i ) + w(t i ) σ p (T i+1 ) for 1 i < n, hence n MS(σ p ) w(t n ) + σ p (T n ) σ p (T 1 ) w(t i ) = w(φ). i=1 15/ 26

38 Speed-up and Efficiency Definition. Let G = (V, E, w) be a DAG and σ p a schedule of G using only p processors: Speed-up: s(σ p ) = Efficiency: e(σ p ) = s(σ p) p Seq MS(σ p ), where Seq = MS opt(1) = v V = Seq p MS(σ p ). w(v). Theorem. Let G = (V, E, w) be a DAG. For any schedule σ p using p processors: 0 e(σ p ) 1. 16/ 26

39 Speed-up and Efficiency Definition. Let G = (V, E, w) be a DAG and σ p a schedule of G using only p processors: Speed-up: s(σ p ) = Efficiency: e(σ p ) = s(σ p) p Seq MS(σ p ), where Seq = MS opt(1) = v V = Seq p MS(σ p ). w(v). Theorem. Let G = (V, E, w) be a DAG. For any schedule σ p using p processors: 0 e(σ p ) 1. 16/ 26

40 Speed-up and Efficiency Definition. Let G = (V, E, w) be a DAG and σ p a schedule of G using only p processors: Speed-up: s(σ p ) = Efficiency: e(σ p ) = s(σ p) p Seq MS(σ p ), where Seq = MS opt(1) = v V = Seq p MS(σ p ). w(v). Theorem. Let G = (V, E, w) be a DAG. For any schedule σ p using p processors: 0 e(σ p ) 1. 16/ 26

41 Speed-up and Efficiency (Cont d) Theorem. Let G = (V, E, w) be a DAG. For any schedule σ p using p processors: 0 e(σ p ) 1. Proof. Processors P4 P3 P2 P1 Time active idle Let Idle denote the total idle time. Seq + Idle is then equal to the total surface of the rectangle, i.e. p MS(σ p ). Seq Therefore e(σ p ) = p MS(σ p ) 1. The speed-up is thus bound the number of processors. No supralinear speed-up in our model! 17/ 26

42 A trivial result Theorem. Let G = (V, E, w) be a DAG. We have Seq = MS opt (1)... MS opt (p) MS opt (p + 1)... MS opt ( ). Allowing to use more processors cannot hurt. However, using more processors may hurt, especially in a model where communications are taken into account. If we define MS (p) as the smallest makespan of schedules using exactly p processors, we may have MS (p) > MS (p ) with p < p. 18/ 26

43 A trivial result Theorem. Let G = (V, E, w) be a DAG. We have Seq = MS opt (1)... MS opt (p) MS opt (p + 1)... MS opt ( ). Allowing to use more processors cannot hurt. However, using more processors may hurt, especially in a model where communications are taken into account. If we define MS (p) as the smallest makespan of schedules using exactly p processors, we may have MS (p) > MS (p ) with p < p. 18/ 26

44 A trivial result Theorem. Let G = (V, E, w) be a DAG. We have Seq = MS opt (1)... MS opt (p) MS opt (p + 1)... MS opt ( ). Allowing to use more processors cannot hurt. However, using more processors may hurt, especially in a model where communications are taken into account. If we define MS (p) as the smallest makespan of schedules using exactly p processors, we may have MS (p) > MS (p ) with p < p. 18/ 26

45 Graham Notation Many parameter can change in a scheduling problem. Graham has then proposed the following classification : α β γ [Bru98] α is the processor environment (a few examples): : single processor; P : identical processors; Q: uniform processors; R: unrelated processors; β describe task and resource characteristics (a few examples): pmtn: preemption; prec, tree or chains: general precedence constraints, tree constraints, set of chain constraints and independent tasks otherwise; rj : tasks have release dates; pj = p or p p j p: all task have processing time equal to p, or comprised between p and p, or have arbitrary processing times otherwise; d: deadlines; γ denotes the optimization criterion (a few examples): Cmax : makespan; Ci : average completion time; w i C i : weighted A.C.T; Lmax : maximum lateness (max C i d i );... 19/ 26

46 Graham Notation Many parameter can change in a scheduling problem. Graham has then proposed the following classification : α β γ [Bru98] α is the processor environment (a few examples): : single processor; P : identical processors; Q: uniform processors; R: unrelated processors; β describe task and resource characteristics (a few examples): pmtn: preemption; prec, tree or chains: general precedence constraints, tree constraints, set of chain constraints and independent tasks otherwise; rj : tasks have release dates; pj = p or p p j p: all task have processing time equal to p, or comprised between p and p, or have arbitrary processing times otherwise; d: deadlines; γ denotes the optimization criterion (a few examples): Cmax : makespan; Ci : average completion time; w i C i : weighted A.C.T; Lmax : maximum lateness (max C i d i );... 19/ 26

47 Graham Notation Many parameter can change in a scheduling problem. Graham has then proposed the following classification : α β γ [Bru98] α is the processor environment (a few examples): : single processor; P : identical processors; Q: uniform processors; R: unrelated processors; β describe task and resource characteristics (a few examples): pmtn: preemption; prec, tree or chains: general precedence constraints, tree constraints, set of chain constraints and independent tasks otherwise; rj : tasks have release dates; pj = p or p p j p: all task have processing time equal to p, or comprised between p and p, or have arbitrary processing times otherwise; d: deadlines; γ denotes the optimization criterion (a few examples): Cmax : makespan; Ci : average completion time; w i C i : weighted A.C.T; Lmax : maximum lateness (max C i d i );... 19/ 26

48 Graham Notation Many parameter can change in a scheduling problem. Graham has then proposed the following classification : α β γ [Bru98] α is the processor environment (a few examples): : single processor; P : identical processors; Q: uniform processors; R: unrelated processors; β describe task and resource characteristics (a few examples): pmtn: preemption; prec, tree or chains: general precedence constraints, tree constraints, set of chain constraints and independent tasks otherwise; rj : tasks have release dates; pj = p or p p j p: all task have processing time equal to p, or comprised between p and p, or have arbitrary processing times otherwise; d: deadlines; γ denotes the optimization criterion (a few examples): Cmax : makespan; Ci : average completion time; w i C i : weighted A.C.T; Lmax : maximum lateness (max C i d i );... 19/ 26

49 Graham Notation Many parameter can change in a scheduling problem. Graham has then proposed the following classification : α β γ [Bru98] α is the processor environment (a few examples): : single processor; P : identical processors; Q: uniform processors; R: unrelated processors; β describe task and resource characteristics (a few examples): pmtn: preemption; prec, tree or chains: general precedence constraints, tree constraints, set of chain constraints and independent tasks otherwise; rj : tasks have release dates; pj = p or p p j p: all task have processing time equal to p, or comprised between p and p, or have arbitrary processing times otherwise; d: deadlines; γ denotes the optimization criterion (a few examples): Cmax : makespan; Ci : average completion time; w i C i : weighted A.C.T; Lmax : maximum lateness (max C i d i );... 19/ 26

50 Graham Notation Many parameter can change in a scheduling problem. Graham has then proposed the following classification : α β γ [Bru98] α is the processor environment (a few examples): : single processor; P : identical processors; Q: uniform processors; R: unrelated processors; β describe task and resource characteristics (a few examples): pmtn: preemption; prec, tree or chains: general precedence constraints, tree constraints, set of chain constraints and independent tasks otherwise; rj : tasks have release dates; pj = p or p p j p: all task have processing time equal to p, or comprised between p and p, or have arbitrary processing times otherwise; d: deadlines; γ denotes the optimization criterion (a few examples): Cmax : makespan; Ci : average completion time; w i C i : weighted A.C.T; Lmax : maximum lateness (max C i d i );... 19/ 26

51 Graham Notation Many parameter can change in a scheduling problem. Graham has then proposed the following classification : α β γ [Bru98] α is the processor environment (a few examples): : single processor; P : identical processors; Q: uniform processors; R: unrelated processors; β describe task and resource characteristics (a few examples): pmtn: preemption; prec, tree or chains: general precedence constraints, tree constraints, set of chain constraints and independent tasks otherwise; rj : tasks have release dates; pj = p or p p j p: all task have processing time equal to p, or comprised between p and p, or have arbitrary processing times otherwise; d: deadlines; γ denotes the optimization criterion (a few examples): Cmax : makespan; Ci : average completion time; w i C i : weighted A.C.T; Lmax : maximum lateness (max C i d i );... 19/ 26

52 Graham Notation Many parameter can change in a scheduling problem. Graham has then proposed the following classification : α β γ [Bru98] α is the processor environment (a few examples): : single processor; P : identical processors; Q: uniform processors; R: unrelated processors; β describe task and resource characteristics (a few examples): pmtn: preemption; prec, tree or chains: general precedence constraints, tree constraints, set of chain constraints and independent tasks otherwise; rj : tasks have release dates; pj = p or p p j p: all task have processing time equal to p, or comprised between p and p, or have arbitrary processing times otherwise; d: deadlines; γ denotes the optimization criterion (a few examples): Cmax : makespan; Ci : average completion time; w i C i : weighted A.C.T; Lmax : maximum lateness (max C i d i );... 19/ 26

53 Graham Notation Many parameter can change in a scheduling problem. Graham has then proposed the following classification : α β γ [Bru98] α is the processor environment (a few examples): : single processor; P : identical processors; Q: uniform processors; R: unrelated processors; β describe task and resource characteristics (a few examples): pmtn: preemption; prec, tree or chains: general precedence constraints, tree constraints, set of chain constraints and independent tasks otherwise; rj : tasks have release dates; pj = p or p p j p: all task have processing time equal to p, or comprised between p and p, or have arbitrary processing times otherwise; d: deadlines; γ denotes the optimization criterion (a few examples): Cmax : makespan; Ci : average completion time; w i C i : weighted A.C.T; Lmax : maximum lateness (max C i d i );... 19/ 26

54 Graham Notation Many parameter can change in a scheduling problem. Graham has then proposed the following classification : α β γ [Bru98] α is the processor environment (a few examples): : single processor; P : identical processors; Q: uniform processors; R: unrelated processors; β describe task and resource characteristics (a few examples): pmtn: preemption; prec, tree or chains: general precedence constraints, tree constraints, set of chain constraints and independent tasks otherwise; rj : tasks have release dates; pj = p or p p j p: all task have processing time equal to p, or comprised between p and p, or have arbitrary processing times otherwise; d: deadlines; γ denotes the optimization criterion (a few examples): Cmax : makespan; Ci : average completion time; w i C i : weighted A.C.T; Lmax : maximum lateness (max C i d i );... 19/ 26

55 Graham Notation Many parameter can change in a scheduling problem. Graham has then proposed the following classification : α β γ [Bru98] α is the processor environment (a few examples): : single processor; P : identical processors; Q: uniform processors; R: unrelated processors; β describe task and resource characteristics (a few examples): pmtn: preemption; prec, tree or chains: general precedence constraints, tree constraints, set of chain constraints and independent tasks otherwise; rj : tasks have release dates; pj = p or p p j p: all task have processing time equal to p, or comprised between p and p, or have arbitrary processing times otherwise; d: deadlines; γ denotes the optimization criterion (a few examples): Cmax : makespan; Ci : average completion time; w i C i : weighted A.C.T; Lmax : maximum lateness (max C i d i );... 19/ 26

56 Graham Notation Many parameter can change in a scheduling problem. Graham has then proposed the following classification : α β γ [Bru98] α is the processor environment (a few examples): : single processor; P : identical processors; Q: uniform processors; R: unrelated processors; β describe task and resource characteristics (a few examples): pmtn: preemption; prec, tree or chains: general precedence constraints, tree constraints, set of chain constraints and independent tasks otherwise; rj : tasks have release dates; pj = p or p p j p: all task have processing time equal to p, or comprised between p and p, or have arbitrary processing times otherwise; d: deadlines; γ denotes the optimization criterion (a few examples): Cmax : makespan; Ci : average completion time; w i C i : weighted A.C.T; Lmax : maximum lateness (max C i d i );... 19/ 26

57 Graham Notation Many parameter can change in a scheduling problem. Graham has then proposed the following classification : α β γ [Bru98] α is the processor environment (a few examples): : single processor; P : identical processors; Q: uniform processors; R: unrelated processors; β describe task and resource characteristics (a few examples): pmtn: preemption; prec, tree or chains: general precedence constraints, tree constraints, set of chain constraints and independent tasks otherwise; rj : tasks have release dates; pj = p or p p j p: all task have processing time equal to p, or comprised between p and p, or have arbitrary processing times otherwise; d: deadlines; γ denotes the optimization criterion (a few examples): Cmax : makespan; Ci : average completion time; w i C i : weighted A.C.T; Lmax : maximum lateness (max C i d i );... 19/ 26

58 Graham Notation Many parameter can change in a scheduling problem. Graham has then proposed the following classification : α β γ [Bru98] α is the processor environment (a few examples): : single processor; P : identical processors; Q: uniform processors; R: unrelated processors; β describe task and resource characteristics (a few examples): pmtn: preemption; prec, tree or chains: general precedence constraints, tree constraints, set of chain constraints and independent tasks otherwise; rj : tasks have release dates; pj = p or p p j p: all task have processing time equal to p, or comprised between p and p, or have arbitrary processing times otherwise; d: deadlines; γ denotes the optimization criterion (a few examples): Cmax : makespan; Ci : average completion time; w i C i : weighted A.C.T; Lmax : maximum lateness (max C i d i );... 19/ 26

59 Graham Notation Many parameter can change in a scheduling problem. Graham has then proposed the following classification : α β γ [Bru98] α is the processor environment (a few examples): : single processor; P : identical processors; Q: uniform processors; R: unrelated processors; β describe task and resource characteristics (a few examples): pmtn: preemption; prec, tree or chains: general precedence constraints, tree constraints, set of chain constraints and independent tasks otherwise; rj : tasks have release dates; pj = p or p p j p: all task have processing time equal to p, or comprised between p and p, or have arbitrary processing times otherwise; d: deadlines; γ denotes the optimization criterion (a few examples): Cmax : makespan; Ci : average completion time; w i C i : weighted A.C.T; Lmax : maximum lateness (max C i d i );... 19/ 26

60 Graham Notation Many parameter can change in a scheduling problem. Graham has then proposed the following classification : α β γ [Bru98] α is the processor environment (a few examples): : single processor; P : identical processors; Q: uniform processors; R: unrelated processors; β describe task and resource characteristics (a few examples): pmtn: preemption; prec, tree or chains: general precedence constraints, tree constraints, set of chain constraints and independent tasks otherwise; rj : tasks have release dates; pj = p or p p j p: all task have processing time equal to p, or comprised between p and p, or have arbitrary processing times otherwise; d: deadlines; γ denotes the optimization criterion (a few examples): Cmax : makespan; Ci : average completion time; w i C i : weighted A.C.T; Lmax : maximum lateness (max C i d i );... 19/ 26

61 Graham Notation Many parameter can change in a scheduling problem. Graham has then proposed the following classification : α β γ [Bru98] α is the processor environment (a few examples): : single processor; P : identical processors; Q: uniform processors; R: unrelated processors; β describe task and resource characteristics (a few examples): pmtn: preemption; prec, tree or chains: general precedence constraints, tree constraints, set of chain constraints and independent tasks otherwise; rj : tasks have release dates; pj = p or p p j p: all task have processing time equal to p, or comprised between p and p, or have arbitrary processing times otherwise; d: deadlines; γ denotes the optimization criterion (a few examples): Cmax : makespan; Ci : average completion time; w i C i : weighted A.C.T; Lmax : maximum lateness (max C i d i );... 19/ 26

62 Graham Notation Many parameter can change in a scheduling problem. Graham has then proposed the following classification : α β γ [Bru98] α is the processor environment (a few examples): : single processor; P : identical processors; Q: uniform processors; R: unrelated processors; β describe task and resource characteristics (a few examples): pmtn: preemption; prec, tree or chains: general precedence constraints, tree constraints, set of chain constraints and independent tasks otherwise; rj : tasks have release dates; pj = p or p p j p: all task have processing time equal to p, or comprised between p and p, or have arbitrary processing times otherwise; d: deadlines; γ denotes the optimization criterion (a few examples): Cmax : makespan; Ci : average completion time; w i C i : weighted A.C.T; Lmax : maximum lateness (max C i d i );... 19/ 26

63 Outline 1 Task graphs from outer space 2 Scheduling definitions and notions 3 Platform models and scheduling problems 20/ 26

64 Complexity results If we have an infinite number of processors, the as-soon-as-possible schedule is optimal. MS opt ( ) = max w(φ). Φ path in G P, 2 C max is weakly NP-complete (2-Partition); Proof. By reduction to 2-Partition: can A = {a 1,..., a n } be partitioned into two sets A 1, A 2 such a A 1 a = a A 2 a. p = 2, G = (V, E, w with V = {v 1,..., v n }, E = and w(v i ) = a i, 1 i n. Finding a schedule of makespan smaller or equal to 1 2 i a i is equivalent to solve the instance of 2-Partition. P, 3 prec C max is strongly NP-complete (3DM); P prec, p j = 1 C max is strongly NP-complete (3DM); P, p 3 prec, p j = 1 C max is open; P, 2 prec, 1 p j 2 C max is strongly NP-complete; 21/ 26

65 Complexity results If we have an infinite number of processors, the as-soon-as-possible schedule is optimal. MS opt ( ) = max w(φ). Φ path in G P, 2 C max is weakly NP-complete (2-Partition); Proof. By reduction to 2-Partition: can A = {a 1,..., a n } be partitioned into two sets A 1, A 2 such a A 1 a = a A 2 a. p = 2, G = (V, E, w with V = {v 1,..., v n }, E = and w(v i ) = a i, 1 i n. Finding a schedule of makespan smaller or equal to 1 2 i a i is equivalent to solve the instance of 2-Partition. P, 3 prec C max is strongly NP-complete (3DM); P prec, p j = 1 C max is strongly NP-complete (3DM); P, p 3 prec, p j = 1 C max is open; P, 2 prec, 1 p j 2 C max is strongly NP-complete; 21/ 26

66 Complexity results If we have an infinite number of processors, the as-soon-as-possible schedule is optimal. MS opt ( ) = max w(φ). Φ path in G P, 2 C max is weakly NP-complete (2-Partition); Proof. By reduction to 2-Partition: can A = {a 1,..., a n } be partitioned into two sets A 1, A 2 such a A 1 a = a A 2 a. p = 2, G = (V, E, w with V = {v 1,..., v n }, E = and w(v i ) = a i, 1 i n. Finding a schedule of makespan smaller or equal to 1 2 i a i is equivalent to solve the instance of 2-Partition. P, 3 prec C max is strongly NP-complete (3DM); P prec, p j = 1 C max is strongly NP-complete (3DM); P, p 3 prec, p j = 1 C max is open; P, 2 prec, 1 p j 2 C max is strongly NP-complete; 21/ 26

67 Complexity results If we have an infinite number of processors, the as-soon-as-possible schedule is optimal. MS opt ( ) = max w(φ). Φ path in G P, 2 C max is weakly NP-complete (2-Partition); Proof. By reduction to 2-Partition: can A = {a 1,..., a n } be partitioned into two sets A 1, A 2 such a A 1 a = a A 2 a. p = 2, G = (V, E, w with V = {v 1,..., v n }, E = and w(v i ) = a i, 1 i n. Finding a schedule of makespan smaller or equal to 1 2 i a i is equivalent to solve the instance of 2-Partition. P, 3 prec C max is strongly NP-complete (3DM); P prec, p j = 1 C max is strongly NP-complete (3DM); P, p 3 prec, p j = 1 C max is open; P, 2 prec, 1 p j 2 C max is strongly NP-complete; 21/ 26

68 Complexity results If we have an infinite number of processors, the as-soon-as-possible schedule is optimal. MS opt ( ) = max w(φ). Φ path in G P, 2 C max is weakly NP-complete (2-Partition); Proof. By reduction to 2-Partition: can A = {a 1,..., a n } be partitioned into two sets A 1, A 2 such a A 1 a = a A 2 a. p = 2, G = (V, E, w with V = {v 1,..., v n }, E = and w(v i ) = a i, 1 i n. Finding a schedule of makespan smaller or equal to 1 2 i a i is equivalent to solve the instance of 2-Partition. P, 3 prec C max is strongly NP-complete (3DM); P prec, p j = 1 C max is strongly NP-complete (3DM); P, p 3 prec, p j = 1 C max is open; P, 2 prec, 1 p j 2 C max is strongly NP-complete; 21/ 26

69 Complexity results If we have an infinite number of processors, the as-soon-as-possible schedule is optimal. MS opt ( ) = max w(φ). Φ path in G P, 2 C max is weakly NP-complete (2-Partition); Proof. By reduction to 2-Partition: can A = {a 1,..., a n } be partitioned into two sets A 1, A 2 such a A 1 a = a A 2 a. p = 2, G = (V, E, w with V = {v 1,..., v n }, E = and w(v i ) = a i, 1 i n. Finding a schedule of makespan smaller or equal to 1 2 i a i is equivalent to solve the instance of 2-Partition. P, 3 prec C max is strongly NP-complete (3DM); P prec, p j = 1 C max is strongly NP-complete (3DM); P, p 3 prec, p j = 1 C max is open; P, 2 prec, 1 p j 2 C max is strongly NP-complete; 21/ 26

70 Complexity results If we have an infinite number of processors, the as-soon-as-possible schedule is optimal. MS opt ( ) = max w(φ). Φ path in G P, 2 C max is weakly NP-complete (2-Partition); Proof. By reduction to 2-Partition: can A = {a 1,..., a n } be partitioned into two sets A 1, A 2 such a A 1 a = a A 2 a. p = 2, G = (V, E, w with V = {v 1,..., v n }, E = and w(v i ) = a i, 1 i n. Finding a schedule of makespan smaller or equal to 1 2 i a i is equivalent to solve the instance of 2-Partition. P, 3 prec C max is strongly NP-complete (3DM); P prec, p j = 1 C max is strongly NP-complete (3DM); P, p 3 prec, p j = 1 C max is open; P, 2 prec, 1 p j 2 C max is strongly NP-complete; 21/ 26

71 Complexity results If we have an infinite number of processors, the as-soon-as-possible schedule is optimal. MS opt ( ) = max w(φ). Φ path in G P, 2 C max is weakly NP-complete (2-Partition); Proof. By reduction to 2-Partition: can A = {a 1,..., a n } be partitioned into two sets A 1, A 2 such a A 1 a = a A 2 a. p = 2, G = (V, E, w with V = {v 1,..., v n }, E = and w(v i ) = a i, 1 i n. Finding a schedule of makespan smaller or equal to 1 2 i a i is equivalent to solve the instance of 2-Partition. P, 3 prec C max is strongly NP-complete (3DM); P prec, p j = 1 C max is strongly NP-complete (3DM); P, p 3 prec, p j = 1 C max is open; P, 2 prec, 1 p j 2 C max is strongly NP-complete; 21/ 26

72 List scheduling When simple problems are hard, we should try to find good approximation heuristics. Natural idea: using greedy strategy like trying to allocate the most possible task at a given time-step. However at some point we may face a choice (when there is more ready tasks than available processors). Any strategy that does not let on purpose a processor idle is efficient. Such a schedule is called list-schedule. Theorem (Coffman). Let G = (V, E, w) be a DAG, p the number of processors, and σ p a list-schedule of G. ( ) MS(σ p ) 2 1 p MS opt (p). One can actually prove that this bound cannot be improved. Most of the time, list-heuristics are based on the critical path. 22/ 26

73 List scheduling When simple problems are hard, we should try to find good approximation heuristics. Natural idea: using greedy strategy like trying to allocate the most possible task at a given time-step. However at some point we may face a choice (when there is more ready tasks than available processors). Any strategy that does not let on purpose a processor idle is efficient. Such a schedule is called list-schedule. Theorem (Coffman). Let G = (V, E, w) be a DAG, p the number of processors, and σ p a list-schedule of G. ( ) MS(σ p ) 2 1 p MS opt (p). One can actually prove that this bound cannot be improved. Most of the time, list-heuristics are based on the critical path. 22/ 26

74 List scheduling When simple problems are hard, we should try to find good approximation heuristics. Natural idea: using greedy strategy like trying to allocate the most possible task at a given time-step. However at some point we may face a choice (when there is more ready tasks than available processors). Any strategy that does not let on purpose a processor idle is efficient. Such a schedule is called list-schedule. Theorem (Coffman). Let G = (V, E, w) be a DAG, p the number of processors, and σ p a list-schedule of G. ( ) MS(σ p ) 2 1 p MS opt (p). One can actually prove that this bound cannot be improved. Most of the time, list-heuristics are based on the critical path. 22/ 26

75 Taking communications into account A very simple model (things are already complicated enough): the macro-data flow model. If there is some data-dependence between T and T, the communication cost is { c(t, T 0 if alloc(t ) = alloc(t ) ) = c(t, T ) otherwise Definition. A DAG with communication cost (say cdag) is a directed acyclic graph G = (V, E, w, c) where vertexes represent tasks and edges represent dependence constraints. w : V N is the computation time function and c : E N is the communication time function. Any valid schedule has to respect the dependence constraints. e = (v, v ) E, { σ(v) + w(v) σ(v ) if alloc(v) = alloc(v ) σ(v) + w(v) + c(v; v ) σ(v ) otherwise. 23/ 26

76 Taking communications into account A very simple model (things are already complicated enough): the macro-data flow model. If there is some data-dependence between T and T, the communication cost is { c(t, T 0 if alloc(t ) = alloc(t ) ) = c(t, T ) otherwise Definition. A DAG with communication cost (say cdag) is a directed acyclic graph G = (V, E, w, c) where vertexes represent tasks and edges represent dependence constraints. w : V N is the computation time function and c : E N is the communication time function. Any valid schedule has to respect the dependence constraints. e = (v, v ) E, { σ(v) + w(v) σ(v ) if alloc(v) = alloc(v ) σ(v) + w(v) + c(v; v ) σ(v ) otherwise. 23/ 26

77 Taking communications into account (cont d) Even Pb( ) is NP-complete!!! You constantly have to figure out whether you should use more processor (but then pay more fore communications) or not. Finding the good trade-off is a real challenge. 4/3-approximation if all communication times are smaller than computation times. Finding guaranteed approximations for other settings is really hard, but really useful. That must be the reason why there is so much research about it! 24/ 26

78 Conclusion Most of the time, the only thing we can done is to compare heuristics. There are three ways of doing that: Theory: being able to guarantee your heuristic; Experiment: Generating random graphs and/or typical application graphs along with platform graphs to compare your heuristics. Smart: proving that your heuristic is optimal for a particular class of graphs (fork, join, fork-join, bounded degree,... ). However, remember that the first thing to do is to look whether your problem is NP-complete or not. Who knows? You may be lucky... 25/ 26

79 Bibliography A.J. Bernstein. Analysis of programs for parallel processing. IEEE Transactions on Electronic Computers, 15: , October Peter Brucker. Scheduling Algorithms. Springer, Heidelberg, 2 edition, / 26

### Scheduling Shop Scheduling. Tim Nieberg

Scheduling Shop Scheduling Tim Nieberg Shop models: General Introduction Remark: Consider non preemptive problems with regular objectives Notation Shop Problems: m machines, n jobs 1,..., n operations

### Real Time Scheduling Basic Concepts. Radek Pelánek

Real Time Scheduling Basic Concepts Radek Pelánek Basic Elements Model of RT System abstraction focus only on timing constraints idealization (e.g., zero switching time) Basic Elements Basic Notions task

### Approximation Algorithms. Scheduling. Approximation algorithms. Scheduling jobs on a single machine

Approximation algorithms Approximation Algorithms Fast. Cheap. Reliable. Choose two. NP-hard problems: choose 2 of optimal polynomial time all instances Approximation algorithms. Trade-off between time

### Applied Algorithm Design Lecture 5

Applied Algorithm Design Lecture 5 Pietro Michiardi Eurecom Pietro Michiardi (Eurecom) Applied Algorithm Design Lecture 5 1 / 86 Approximation Algorithms Pietro Michiardi (Eurecom) Applied Algorithm Design

### ! Solve problem to optimality. ! Solve problem in poly-time. ! Solve arbitrary instances of the problem. #-approximation algorithm.

Approximation Algorithms 11 Approximation Algorithms Q Suppose I need to solve an NP-hard problem What should I do? A Theory says you're unlikely to find a poly-time algorithm Must sacrifice one of three

### Classification - Examples

Lecture 2 Scheduling 1 Classification - Examples 1 r j C max given: n jobs with processing times p 1,...,p n and release dates r 1,...,r n jobs have to be scheduled without preemption on one machine taking

### ! Solve problem to optimality. ! Solve problem in poly-time. ! Solve arbitrary instances of the problem. !-approximation algorithm.

Approximation Algorithms Chapter Approximation Algorithms Q Suppose I need to solve an NP-hard problem What should I do? A Theory says you're unlikely to find a poly-time algorithm Must sacrifice one of

### Cost Model: Work, Span and Parallelism. 1 The RAM model for sequential computation:

CSE341T 08/31/2015 Lecture 3 Cost Model: Work, Span and Parallelism In this lecture, we will look at how one analyze a parallel program written using Cilk Plus. When we analyze the cost of an algorithm

### Scheduling Single Machine Scheduling. Tim Nieberg

Scheduling Single Machine Scheduling Tim Nieberg Single machine models Observation: for non-preemptive problems and regular objectives, a sequence in which the jobs are processed is sufficient to describe

### Single machine parallel batch scheduling with unbounded capacity

Workshop on Combinatorics and Graph Theory 21th, April, 2006 Nankai University Single machine parallel batch scheduling with unbounded capacity Yuan Jinjiang Department of mathematics, Zhengzhou University

### Classification - Examples -1- 1 r j C max given: n jobs with processing times p 1,..., p n and release dates

Lecture 2 Scheduling 1 Classification - Examples -1-1 r j C max given: n jobs with processing times p 1,..., p n and release dates r 1,..., r n jobs have to be scheduled without preemption on one machine

Approximation Algorithms Chapter Approximation Algorithms Q. Suppose I need to solve an NP-hard problem. What should I do? A. Theory says you're unlikely to find a poly-time algorithm. Must sacrifice one

### 11. APPROXIMATION ALGORITHMS

11. APPROXIMATION ALGORITHMS load balancing center selection pricing method: vertex cover LP rounding: vertex cover generalized load balancing knapsack problem Lecture slides by Kevin Wayne Copyright 2005

### Common Approaches to Real-Time Scheduling

Common Approaches to Real-Time Scheduling Clock-driven time-driven schedulers Priority-driven schedulers Examples of priority driven schedulers Effective timing constraints The Earliest-Deadline-First

### Modern Optimization Methods for Big Data Problems MATH11146 The University of Edinburgh

Modern Optimization Methods for Big Data Problems MATH11146 The University of Edinburgh Peter Richtárik Week 3 Randomized Coordinate Descent With Arbitrary Sampling January 27, 2016 1 / 30 The Problem

### Complexity Theory. IE 661: Scheduling Theory Fall 2003 Satyaki Ghosh Dastidar

Complexity Theory IE 661: Scheduling Theory Fall 2003 Satyaki Ghosh Dastidar Outline Goals Computation of Problems Concepts and Definitions Complexity Classes and Problems Polynomial Time Reductions Examples

### Algorithm Design and Analysis

Algorithm Design and Analysis LECTURE 27 Approximation Algorithms Load Balancing Weighted Vertex Cover Reminder: Fill out SRTEs online Don t forget to click submit Sofya Raskhodnikova 12/6/2011 S. Raskhodnikova;

### 2.3 Scheduling jobs on identical parallel machines

2.3 Scheduling jobs on identical parallel machines There are jobs to be processed, and there are identical machines (running in parallel) to which each job may be assigned Each job = 1,,, must be processed

### A STUDY OF TASK SCHEDULING IN MULTIPROCESSOR ENVIROMENT Ranjit Rajak 1, C.P.Katti 2, Nidhi Rajak 3

A STUDY OF TASK SCHEDULING IN MULTIPROCESSOR ENVIROMENT Ranjit Rajak 1, C.P.Katti, Nidhi Rajak 1 Department of Computer Science & Applications, Dr.H.S.Gour Central University, Sagar, India, ranjit.jnu@gmail.com

### An improved on-line algorithm for scheduling on two unrestrictive parallel batch processing machines

This is the Pre-Published Version. An improved on-line algorithm for scheduling on two unrestrictive parallel batch processing machines Q.Q. Nong, T.C.E. Cheng, C.T. Ng Department of Mathematics, Ocean

### Approximation Algorithms

Approximation Algorithms or: How I Learned to Stop Worrying and Deal with NP-Completeness Ong Jit Sheng, Jonathan (A0073924B) March, 2012 Overview Key Results (I) General techniques: Greedy algorithms

### MapReduce and Distributed Data Analysis. Sergei Vassilvitskii Google Research

MapReduce and Distributed Data Analysis Google Research 1 Dealing With Massive Data 2 2 Dealing With Massive Data Polynomial Memory Sublinear RAM Sketches External Memory Property Testing 3 3 Dealing With

### Introducción a Calendarización en Sistemas Paralelas, Grids y Nubes

CICESE Research Center Ensenada, Baja California Mexico Introducción a Calendarización en Sistemas Paralelas, Grids y Nubes Dr. Andrei Tchernykh CICESE Centro de Investigación Científica y de Educación

### Matching and Scheduling Algorithms on Large Scale Dynamic Graphs

Matching and Scheduling Algorithms on Large Scale Dynamic Graphs Author: Xander van den Eelaart Supervisors: Prof. dr. Rob H. Bisseling ir. Marcel F. van den Elst Second reader: dr. Tobias Müller Master

### Duplicating and its Applications in Batch Scheduling

Duplicating and its Applications in Batch Scheduling Yuzhong Zhang 1 Chunsong Bai 1 Shouyang Wang 2 1 College of Operations Research and Management Sciences Qufu Normal University, Shandong 276826, China

### Diversity Coloring for Distributed Data Storage in Networks 1

Diversity Coloring for Distributed Data Storage in Networks 1 Anxiao (Andrew) Jiang and Jehoshua Bruck California Institute of Technology Pasadena, CA 9115, U.S.A. {jax, bruck}@paradise.caltech.edu Abstract

### Distributed Load Balancing for Machines Fully Heterogeneous

Internship Report 2 nd of June - 22 th of August 2014 Distributed Load Balancing for Machines Fully Heterogeneous Nathanaël Cheriere nathanael.cheriere@ens-rennes.fr ENS Rennes Academic Year 2013-2014

### Partitioned real-time scheduling on heterogeneous shared-memory multiprocessors

Partitioned real-time scheduling on heterogeneous shared-memory multiprocessors Martin Niemeier École Polytechnique Fédérale de Lausanne Discrete Optimization Group Lausanne, Switzerland martin.niemeier@epfl.ch

### Single machine models: Maximum Lateness -12- Approximation ratio for EDD for problem 1 r j,d j < 0 L max. structure of a schedule Q...

Lecture 4 Scheduling 1 Single machine models: Maximum Lateness -12- Approximation ratio for EDD for problem 1 r j,d j < 0 L max structure of a schedule 0 Q 1100 11 00 11 000 111 0 0 1 1 00 11 00 11 00

### INDISTINGUISHABILITY OF ABSOLUTELY CONTINUOUS AND SINGULAR DISTRIBUTIONS

INDISTINGUISHABILITY OF ABSOLUTELY CONTINUOUS AND SINGULAR DISTRIBUTIONS STEVEN P. LALLEY AND ANDREW NOBEL Abstract. It is shown that there are no consistent decision rules for the hypothesis testing problem

### Minimum Makespan Scheduling

Minimum Makespan Scheduling Minimum makespan scheduling: Definition and variants Factor 2 algorithm for identical machines PTAS for identical machines Factor 2 algorithm for unrelated machines Martin Zachariasen,

### Parallel machines scheduling with applications to Internet ad-slot placement

UNLV Theses/Dissertations/Professional Papers/Capstones 12-2011 Parallel machines scheduling with applications to Internet ad-slot placement Shaista Lubna University of Nevada, Las Vegas Follow this and

### Scheduling Parallel Machine Scheduling. Tim Nieberg

Scheduling Parallel Machine Scheduling Tim Nieberg Problem P C max : m machines n jobs with processing times p 1,..., p n Problem P C max : m machines n jobs with processing times p 1,..., p { n 1 if job

### 19/04/2016. What does it mean? Response-Time Analysis of Conditional DAG Tasks in Multiprocessor Systems. What does it mean? What does it mean?

9/04/20 What does it mean? «Response-time analysis» Response-Time Analysis of Conditional DAG Tasks in Multiprocessor Systems «conditional» «DAG tasks» «multiprocessor systems» Alessandra Melani 2 What

### 1 Approximating Set Cover

CS 05: Algorithms (Grad) Feb 2-24, 2005 Approximating Set Cover. Definition An Instance (X, F ) of the set-covering problem consists of a finite set X and a family F of subset of X, such that every elemennt

### FIND ALL LONGER AND SHORTER BOUNDARY DURATION VECTORS UNDER PROJECT TIME AND BUDGET CONSTRAINTS

Journal of the Operations Research Society of Japan Vol. 45, No. 3, September 2002 2002 The Operations Research Society of Japan FIND ALL LONGER AND SHORTER BOUNDARY DURATION VECTORS UNDER PROJECT TIME

### Ecient approximation algorithm for minimizing makespan. on uniformly related machines. Chandra Chekuri. November 25, 1997.

Ecient approximation algorithm for minimizing makespan on uniformly related machines Chandra Chekuri November 25, 1997 Abstract We obtain a new ecient approximation algorithm for scheduling precedence

### Answers to some of the exercises.

Answers to some of the exercises. Chapter 2. Ex.2.1 (a) There are several ways to do this. Here is one possibility. The idea is to apply the k-center algorithm first to D and then for each center in D

### Why? A central concept in Computer Science. Algorithms are ubiquitous.

Analysis of Algorithms: A Brief Introduction Why? A central concept in Computer Science. Algorithms are ubiquitous. Using the Internet (sending email, transferring files, use of search engines, online

### Improving Experiments by Optimal Blocking: Minimizing the Maximum Within-block Distance

Improving Experiments by Optimal Blocking: Minimizing the Maximum Within-block Distance Michael J. Higgins Jasjeet Sekhon April 12, 2014 EGAP XI A New Blocking Method A new blocking method with nice theoretical

### CHAPTER II THE LIMIT OF A SEQUENCE OF NUMBERS DEFINITION OF THE NUMBER e.

CHAPTER II THE LIMIT OF A SEQUENCE OF NUMBERS DEFINITION OF THE NUMBER e. This chapter contains the beginnings of the most important, and probably the most subtle, notion in mathematical analysis, i.e.,

### Fairness in Routing and Load Balancing

Fairness in Routing and Load Balancing Jon Kleinberg Yuval Rabani Éva Tardos Abstract We consider the issue of network routing subject to explicit fairness conditions. The optimization of fairness criteria

### 2.3 Convex Constrained Optimization Problems

42 CHAPTER 2. FUNDAMENTAL CONCEPTS IN CONVEX OPTIMIZATION Theorem 15 Let f : R n R and h : R R. Consider g(x) = h(f(x)) for all x R n. The function g is convex if either of the following two conditions

### Every tree contains a large induced subgraph with all degrees odd

Every tree contains a large induced subgraph with all degrees odd A.J. Radcliffe Carnegie Mellon University, Pittsburgh, PA A.D. Scott Department of Pure Mathematics and Mathematical Statistics University

### Scheduling Parallel Jobs with Monotone Speedup 1

Scheduling Parallel Jobs with Monotone Speedup 1 Alexander Grigoriev, Marc Uetz Maastricht University, Quantitative Economics, P.O.Box 616, 6200 MD Maastricht, The Netherlands, {a.grigoriev@ke.unimaas.nl,

### max cx s.t. Ax c where the matrix A, cost vector c and right hand side b are given and x is a vector of variables. For this example we have x

Linear Programming Linear programming refers to problems stated as maximization or minimization of a linear function subject to constraints that are linear equalities and inequalities. Although the study

### JUST-IN-TIME SCHEDULING WITH PERIODIC TIME SLOTS. Received December May 12, 2003; revised February 5, 2004

Scientiae Mathematicae Japonicae Online, Vol. 10, (2004), 431 437 431 JUST-IN-TIME SCHEDULING WITH PERIODIC TIME SLOTS Ondřej Čepeka and Shao Chin Sung b Received December May 12, 2003; revised February

### Completion Time Scheduling and the WSRPT Algorithm

Completion Time Scheduling and the WSRPT Algorithm Bo Xiong, Christine Chung Department of Computer Science, Connecticut College, New London, CT {bxiong,cchung}@conncoll.edu Abstract. We consider the online

### Dimensioning an inbound call center using constraint programming

Dimensioning an inbound call center using constraint programming Cyril Canon 1,2, Jean-Charles Billaut 2, and Jean-Louis Bouquard 2 1 Vitalicom, 643 avenue du grain d or, 41350 Vineuil, France ccanon@fr.snt.com

### Scheduling Parallel Jobs with Linear Speedup

Scheduling Parallel Jobs with Linear Speedup Alexander Grigoriev and Marc Uetz Maastricht University, Quantitative Economics, P.O.Box 616, 6200 MD Maastricht, The Netherlands. Email: {a.grigoriev,m.uetz}@ke.unimaas.nl

### The Goldberg Rao Algorithm for the Maximum Flow Problem

The Goldberg Rao Algorithm for the Maximum Flow Problem COS 528 class notes October 18, 2006 Scribe: Dávid Papp Main idea: use of the blocking flow paradigm to achieve essentially O(min{m 2/3, n 1/2 }

### 5 INTEGER LINEAR PROGRAMMING (ILP) E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

5 INTEGER LINEAR PROGRAMMING (ILP) E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 General Integer Linear Program: (ILP) min c T x Ax b x 0 integer Assumption: A, b integer The integrality condition

### Scheduling Real-time Tasks: Algorithms and Complexity

Scheduling Real-time Tasks: Algorithms and Complexity Sanjoy Baruah The University of North Carolina at Chapel Hill Email: baruah@cs.unc.edu Joël Goossens Université Libre de Bruxelles Email: joel.goossens@ulb.ac.be

### Ph.D. Thesis. Judit Nagy-György. Supervisor: Péter Hajnal Associate Professor

Online algorithms for combinatorial problems Ph.D. Thesis by Judit Nagy-György Supervisor: Péter Hajnal Associate Professor Doctoral School in Mathematics and Computer Science University of Szeged Bolyai

### Lecture 6: Approximation via LP Rounding

Lecture 6: Approximation via LP Rounding Let G = (V, E) be an (undirected) graph. A subset C V is called a vertex cover for G if for every edge (v i, v j ) E we have v i C or v j C (or both). In other

### Lecture Notes 12: Scheduling - Cont.

Online Algorithms 18.1.2012 Professor: Yossi Azar Lecture Notes 12: Scheduling - Cont. Scribe:Inna Kalp 1 Introduction In this Lecture we discuss 2 scheduling models. We review the scheduling over time

### 6.2 Permutations continued

6.2 Permutations continued Theorem A permutation on a finite set A is either a cycle or can be expressed as a product (composition of disjoint cycles. Proof is by (strong induction on the number, r, of

### Lecture Outline Overview of real-time scheduling algorithms Outline relative strengths, weaknesses

Overview of Real-Time Scheduling Embedded Real-Time Software Lecture 3 Lecture Outline Overview of real-time scheduling algorithms Clock-driven Weighted round-robin Priority-driven Dynamic vs. static Deadline

### Min-cost flow problems and network simplex algorithm

Min-cost flow problems and network simplex algorithm The particular structure of some LP problems can be sometimes used for the design of solution techniques more efficient than the simplex algorithm.

### Lecture 4 Online and streaming algorithms for clustering

CSE 291: Geometric algorithms Spring 2013 Lecture 4 Online and streaming algorithms for clustering 4.1 On-line k-clustering To the extent that clustering takes place in the brain, it happens in an on-line

### 1 Digraphs. Definition 1

1 Digraphs Definition 1 Adigraphordirected graphgisatriplecomprisedofavertex set V(G), edge set E(G), and a function assigning each edge an ordered pair of vertices (tail, head); these vertices together

Load Balancing Backtracking, branch & bound and alpha-beta pruning: how to assign work to idle processes without much communication? Additionally for alpha-beta pruning: implementing the young-brothers-wait

### 5.1 Bipartite Matching

CS787: Advanced Algorithms Lecture 5: Applications of Network Flow In the last lecture, we looked at the problem of finding the maximum flow in a graph, and how it can be efficiently solved using the Ford-Fulkerson

### Scheduling. Open shop, job shop, flow shop scheduling. Related problems. Open shop, job shop, flow shop scheduling

Scheduling Basic scheduling problems: open shop, job shop, flow job The disjunctive graph representation Algorithms for solving the job shop problem Computational complexity of the job shop problem Open

### Exponential time algorithms for graph coloring

Exponential time algorithms for graph coloring Uriel Feige Lecture notes, March 14, 2011 1 Introduction Let [n] denote the set {1,..., k}. A k-labeling of vertices of a graph G(V, E) is a function V [k].

### Decentralized Utility-based Sensor Network Design

Decentralized Utility-based Sensor Network Design Narayanan Sadagopan and Bhaskar Krishnamachari University of Southern California, Los Angeles, CA 90089-0781, USA narayans@cs.usc.edu, bkrishna@usc.edu

### Approximation Algorithms: LP Relaxation, Rounding, and Randomized Rounding Techniques. My T. Thai

Approximation Algorithms: LP Relaxation, Rounding, and Randomized Rounding Techniques My T. Thai 1 Overview An overview of LP relaxation and rounding method is as follows: 1. Formulate an optimization

### On Integer Additive Set-Indexers of Graphs

On Integer Additive Set-Indexers of Graphs arxiv:1312.7672v4 [math.co] 2 Mar 2014 N K Sudev and K A Germina Abstract A set-indexer of a graph G is an injective set-valued function f : V (G) 2 X such that

### Integrating job parallelism in real-time scheduling theory

Integrating job parallelism in real-time scheduling theory Sébastien Collette Liliana Cucu Joël Goossens Abstract We investigate the global scheduling of sporadic, implicit deadline, real-time task systems

### Analysis of Algorithms I: Optimal Binary Search Trees

Analysis of Algorithms I: Optimal Binary Search Trees Xi Chen Columbia University Given a set of n keys K = {k 1,..., k n } in sorted order: k 1 < k 2 < < k n we wish to build an optimal binary search

### Analysis of Binary Search algorithm and Selection Sort algorithm

Analysis of Binary Search algorithm and Selection Sort algorithm In this section we shall take up two representative problems in computer science, work out the algorithms based on the best strategy to

### Network File Storage with Graceful Performance Degradation

Network File Storage with Graceful Performance Degradation ANXIAO (ANDREW) JIANG California Institute of Technology and JEHOSHUA BRUCK California Institute of Technology A file storage scheme is proposed

### Modeling and Performance Evaluation of Computer Systems Security Operation 1

Modeling and Performance Evaluation of Computer Systems Security Operation 1 D. Guster 2 St.Cloud State University 3 N.K. Krivulin 4 St.Petersburg State University 5 Abstract A model of computer system

### Resource Allocation with Time Intervals

Resource Allocation with Time Intervals Andreas Darmann Ulrich Pferschy Joachim Schauer Abstract We study a resource allocation problem where jobs have the following characteristics: Each job consumes

### NP-Hardness Results Related to PPAD

NP-Hardness Results Related to PPAD Chuangyin Dang Dept. of Manufacturing Engineering & Engineering Management City University of Hong Kong Kowloon, Hong Kong SAR, China E-Mail: mecdang@cityu.edu.hk Yinyu

### Solutions to Homework 6

Solutions to Homework 6 Debasish Das EECS Department, Northwestern University ddas@northwestern.edu 1 Problem 5.24 We want to find light spanning trees with certain special properties. Given is one example

### Introduction to production scheduling. Industrial Management Group School of Engineering University of Seville

Introduction to production scheduling Industrial Management Group School of Engineering University of Seville 1 Introduction to production scheduling Scheduling Production scheduling Gantt Chart Scheduling

### Online Bipartite Perfect Matching With Augmentations

Online Bipartite Perfect Matching With Augmentations Kamalika Chaudhuri, Constantinos Daskalakis, Robert D. Kleinberg, and Henry Lin Information Theory and Applications Center, U.C. San Diego Email: kamalika@soe.ucsd.edu

### OPTIMAL DESIGN OF DISTRIBUTED SENSOR NETWORKS FOR FIELD RECONSTRUCTION

OPTIMAL DESIGN OF DISTRIBUTED SENSOR NETWORKS FOR FIELD RECONSTRUCTION Sérgio Pequito, Stephen Kruzick, Soummya Kar, José M. F. Moura, A. Pedro Aguiar Department of Electrical and Computer Engineering

### Private Approximation of Clustering and Vertex Cover

Private Approximation of Clustering and Vertex Cover Amos Beimel, Renen Hallak, and Kobbi Nissim Department of Computer Science, Ben-Gurion University of the Negev Abstract. Private approximation of search

### each college c i C has a capacity q i - the maximum number of students it will admit

n colleges in a set C, m applicants in a set A, where m is much larger than n. each college c i C has a capacity q i - the maximum number of students it will admit each college c i has a strict order i

### IE 680 Special Topics in Production Systems: Networks, Routing and Logistics*

IE 680 Special Topics in Production Systems: Networks, Routing and Logistics* Rakesh Nagi Department of Industrial Engineering University at Buffalo (SUNY) *Lecture notes from Network Flows by Ahuja, Magnanti

### Cyclic scheduling: an introduction

Cyclic scheduling: an introduction Claire Hanen Claire.Hanen@lip6.fr Université Paris X Nanterre / LIP6 UPMC Cyclic scheduling for EPIT 00 p. /? Summary Definition Uniform precedence constraints Feasibility

### CSL851: Algorithmic Graph Theory Semester I Lecture 1: July 24

CSL851: Algorithmic Graph Theory Semester I 2013-2014 Lecture 1: July 24 Lecturer: Naveen Garg Scribes: Suyash Roongta Note: LaTeX template courtesy of UC Berkeley EECS dept. Disclaimer: These notes have

### R u t c o r Research R e p o r t. A Method to Schedule Both Transportation and Production at the Same Time in a Special FMS.

R u t c o r Research R e p o r t A Method to Schedule Both Transportation and Production at the Same Time in a Special FMS Navid Hashemian a Béla Vizvári b RRR 3-2011, February 21, 2011 RUTCOR Rutgers

### GROUPS SUBGROUPS. Definition 1: An operation on a set G is a function : G G G.

Definition 1: GROUPS An operation on a set G is a function : G G G. Definition 2: A group is a set G which is equipped with an operation and a special element e G, called the identity, such that (i) the

### A Practical Scheme for Wireless Network Operation

A Practical Scheme for Wireless Network Operation Radhika Gowaikar, Amir F. Dana, Babak Hassibi, Michelle Effros June 21, 2004 Abstract In many problems in wireline networks, it is known that achieving

### Embedded Systems 20 REVIEW. Multiprocessor Scheduling

Embedded Systems 0 - - Multiprocessor Scheduling REVIEW Given n equivalent processors, a finite set M of aperiodic/periodic tasks find a schedule such that each task always meets its deadline. Assumptions:

### 3. Markov property. Markov property for MRFs. Hammersley-Clifford theorem. Markov property for Bayesian networks. I-map, P-map, and chordal graphs

Markov property 3-3. Markov property Markov property for MRFs Hammersley-Clifford theorem Markov property for ayesian networks I-map, P-map, and chordal graphs Markov Chain X Y Z X = Z Y µ(x, Y, Z) = f(x,

### Lecture 11: All-Pairs Shortest Paths

Lecture 11: All-Pairs Shortest Paths Introduction Different types of algorithms can be used to solve the all-pairs shortest paths problem: Dynamic programming Matrix multiplication Floyd-Warshall algorithm

### Minimizing the Number of Machines in a Unit-Time Scheduling Problem

Minimizing the Number of Machines in a Unit-Time Scheduling Problem Svetlana A. Kravchenko 1 United Institute of Informatics Problems, Surganova St. 6, 220012 Minsk, Belarus kravch@newman.bas-net.by Frank

### Dependability Driven Integration of Mixed Criticality SW Components

Dependability Driven Integration of Mixed Criticality SW Components Shariful Islam, Robert Lindström and Neeraj Suri Department of Computer Science TU Darmstadt, Germany {ripon,rl,suri}@informatik.tu-darmstadt.de

### Reliability Guarantees in Automata Based Scheduling for Embedded Control Software

1 Reliability Guarantees in Automata Based Scheduling for Embedded Control Software Santhosh Prabhu, Aritra Hazra, Pallab Dasgupta Department of CSE, IIT Kharagpur West Bengal, India - 721302. Email: {santhosh.prabhu,

### A REMARK ON ALMOST MOORE DIGRAPHS OF DEGREE THREE. 1. Introduction and Preliminaries

Acta Math. Univ. Comenianae Vol. LXVI, 2(1997), pp. 285 291 285 A REMARK ON ALMOST MOORE DIGRAPHS OF DEGREE THREE E. T. BASKORO, M. MILLER and J. ŠIRÁŇ Abstract. It is well known that Moore digraphs do

### Optimized Asynchronous Passive Multi-Channel Discovery of Beacon-Enabled Networks

t t Technische Universität Berlin Telecommunication Networks Group arxiv:1506.05255v1 [cs.ni] 17 Jun 2015 Optimized Asynchronous Passive Multi-Channel Discovery of Beacon-Enabled Networks Niels Karowski,

### 10.1 Integer Programming and LP relaxation

CS787: Advanced Algorithms Lecture 10: LP Relaxation and Rounding In this lecture we will design approximation algorithms using linear programming. The key insight behind this approach is that the closely

### Load balancing in a heterogeneous computer system by self-organizing Kohonen network

Bull. Nov. Comp. Center, Comp. Science, 25 (2006), 69 74 c 2006 NCC Publisher Load balancing in a heterogeneous computer system by self-organizing Kohonen network Mikhail S. Tarkov, Yakov S. Bezrukov Abstract.

### RUN: Optimal Multiprocessor Real-Time Scheduling via Reduction to Uniprocessor

1 RUN: Optimal Multiprocessor Real-Time Scheduling via Reduction to Uniprocessor Paul Regnier, George Lima, Ernesto Massa Federal University of Bahia, State University of Bahia Salvador, Bahia, Brasil