You are on page 1of 19

OBLICZENIA RÓWNOLEGŁE

I ROZPROSZONE
Temat 4b:

Deterministyczne problemy
szeregowania zadań, cz.II
Prowadzący: dr inż. Zbigniew TARAPATA
pok.225A, tel.: 83-95-04

e-mail: Zbigniew.Tarapata@wat.edu.pl

http:// tarapata.strefa
tarapata.strefa.pl
.pl//p_obliczenia_rownolegle_i_rozproszone/
p_obliczenia_rownolegle_i_rozproszone/

Szeregowanie operacji bezprocesorowych. Metoda ścieżki krytycznej.

Model –|prec|Cmax operacji o różnych czasach wykonania, z


zależnościami kolejnościowymi, ale nie wymagającymi procesorów.
Celem jest znalezienie najkrótszego możliwego harmonogramu.
Relacja porządku operacji Î sieć działań (digraf acykliczny):
• łuki odpowiadają operacjom, ich długości są równe czasom wykonywania,
• przez każdy wierzchołek przechodzi droga z z (źródło) do u (ujście),
• Zi≺Zj ⇔ w sieci istnieje droga z końca łuku Zi do początku Zj,
• można wprowadzać operacje pozorne – łuki o zerowej długości.
Z4,2 Z8,2 Z13,6 Relacja A Z ,2 D Z8,2 F Z13,6 I
4
Z1,3 porządku
Z5,4 Z9,1 Z14,5 Z1,3 Z5,4 Z9,1 Z14,5 Z18,5
Z18,5
Z2,8 Z2,8 C Z ,2 G Z15,9
Z 10 U
Z10,2 Z15,9 Z19,3
Z3,2 Z6,6
Z3,2 Z6,6 Z11,1 Z16,6 Z19,3
Z11,1 Z16,6
Z7,9 Sieć

Z12,2 Z17,2
przedsięwzięcia B Z7,9 E Z12,2 H Z17,2 J
2
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/

1
Szeregowanie operacji bezprocesorowych. Metoda ścieżki krytycznej.
Zasada: dla wszystkich wierzchołków v wyznaczamy najdłuższe drogi z z
do v. Ich długość to l(v). Jak to zrobić?
1. numeruj wierzchołki „topologicznie” (brak łuków „pod prąd”),
2. źródłu z nadaj etykietę l(z)=0, a kolejnym wierzchołkom v przypisuj
l(v)=max{l(u)+pj: łuk Zj prowadzi z u do v},
Wynik: l(v) wierzchołka początkowego Zj jest najwcześniejszym
możliwym terminem rozpoczęcia tej operacji. l(u) to termin zakończenia
harmonogramu. Z: 0 Terminy
A Z ,2 D Z8,2 F Z ,6 I Porządek A: 3 Z:0+3 uruchomienia
4 13
topologiczny B: 2 Z:0+2
Z1,3 Z5,4 Z9,1 Z14,5 Z18,5 C: 8 Z:0+8, A:3+4, B:2+6
D: 5 A:3+2
Z2,8 C Z10,2 G Z15,9 E: 11 B:2+9
Z U
F: 9 C:8+1 ,D:5+2
Z3,2 Z16,6 Z19,3 G: 12 C:8+2, E:11+1
Z6,6 Z11,1
H: 13 E:11+2
I: 17 F:9+6, G:12+5
B Z7,9 E Z12,2 H Z17,2 J J: 18 G:12+6, H:13+2
U: 22 I:17+5, J:18+3, G:12+9
3
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/

Szeregowanie operacji bezprocesorowych. Metoda ścieżki krytycznej.


Z4,2 Z8,2 Z13,6
Z1,3
A Z ,2 D Z ,2 F Z ,6 I Z5,4 Z9,1 Z14,5
4 8 13 Z18,5
Z2,8
Z1,3 Z5,4 Z9,1 Z14,5 Z18,5 Z10,2 Z15,9 Z19,3
Z3,2 Z6,6

Z2,8 C Z10,2 G Z15,9 Z7,9


Z11,1 Z16,6
Z U
Z: 0 Z12,2 Z17,2
A: 3 Z3,2 Z16,6
Z6,6 Z11,1 Z19,3
B: 2
C: 8
D: 5 B Z7,9 E Z12,2 H Z17,2 J
E: 11 Z7 Z16
F: 9
Z6 Z 15
G: 12
H: 13 Z3 Z5 Z13
I: 17 Z2 Z10 Z12 Z17 Z19
J: 18 Z9 Z11
Z1 Z4 Z8 Z14 Z18
U: 22
5 10 15 20 4
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/

2
Szeregowanie operacji bezprocesorowych. Metoda ścieżki krytycznej.

• Algorytm ścieżki krytycznej minimalizuje nie tylko Cmax, ale


wszystkie zdefiniowane wcześniej funkcje kryterialne.
• Możemy wprowadzić do modelu różne wartości terminów przybycia
rj za pomocą łuków pozornych (o długości rj, prowadzi z z do początku
łuku Zj).

5
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/

Minimalizacja długości harmonogramu. Maszyny równoległe.

Procesory identyczne, zadania niezależne


Zadania podzielne P|pmtn|Cmax.
Algorytm McNaughtona Złożoność O(n)
1. Wylicz optymalną długość C*max=max{Σj=1,...,n pj/m, max j=1,...,n pj},
2. Szereguj kolejno zadania na maszynie, po osiągnięciu C*max
przerwij zadanie i (jeśli się nie zakończyło) kontynuuj je na następnym
procesorze począwszy od chwili 0.
Przykład. m=3, n=5, p1,...,p5=4,5,2,1,2.

Σi=1,...,5 pi=14, max pi=5, M1 Z1 Z2


Cmax*=max{14/3,5}=5.
M2 Z2 Z3

M3 Z3 Z4 Z5

5
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/
6

3
Minimalizacja długości harmonogramu. Maszyny równoległe.

Procesory identyczne, zadania niezależne


Zadania niepodzielne P||Cmax.
Problem jest NP-trudny już na dwóch maszynach (P2||Cmax).
Dowód. Problem podziału: dany jest ciąg a1,...an liczb naturalnych o
S=Σi=1,...,n ai parzystej. Czy istnieje jego podciąg o sumie S/2?
Redukcja PP Î P2||Cmax: bierzemy n zadań o pj=aj (j=1,...,n), dwie
maszyny, pytamy o istnienie uszeregowania z Cmax≤S/2.

M1 pi ...

M2 ...

S/2

Dokładny algorytm dynamiczny o czasie pracy O(nCm), gdzie C≥Cmax*.


7
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/

Minimalizacja długości harmonogramu. Maszyny równoległe.

Procesory identyczne, zadania niezależne


Zadania niepodzielne P||Cmax.
Wielomianowe algorytmy przybliżone.
Szeregowanie listowe (List Scheduling LS):
• Z ustalonego ciągu zadań wybieraj pierwsze wolne (według „listy”),
przypisując je zawsze do zwalniającego się procesora.
Przykład. m=3, n=5, p1,...,p5=2,2,1,1,3.
M1 Z1 Z 5 M1 Z5

M2 Z2 M2 Z3
Z1
M3 Z3 Z4 M3 Z2 Z4

5 3
Uszeregowanie Uszeregowanie
listowe optymalne
Dokładność. LS jest 2–przybliżone: Cmax(LS)≤(2–m–1)C*max
8
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/

4
Minimalizacja długości harmonogramu. Maszyny równoległe.

Procesory identyczne, zadania niezależne


Zadania niepodzielne P||Cmax.
Wielomianowe algorytmy przybliżone.
Szeregowanie LPT (Longest Processing Time), SPT (Shortest Proc.Time):
• Szereguj listowo, przy czym zadania na liście są wstępnie
posortowane według nierosnących (LPT) lub niemalejących (SPT)
czasów wykonania pi.
Dokładność. LS jest 4/3–przybliżone: Cmax(LPT)≤(4/3–(3m)–1)C*max.
Procesory dowolne, zadania niezależne
Zadania podzielne R|pmtn|Cmax
Istnieje algorytm wielomianowy - wrócimy do tego ...
Zadania niepodzielne R||Cmax
• Oczywiście problem jest NP–trudny (uogólnienie P||Cmax).
• Podproblem Q|pi=1|Cmax można rozwiązać w czasie wielomianowym.
• W praktyce stosuje się LPT. 9
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/

Minimalizacja długości harmonogramu. Maszyny równoległe.

Procesory identyczne, zadania zależne


Zadania podzielne P|pmtn,prec|Cmax.
• W ogólności jest to problem NP–trudny.
• Istnieje algorytm O(n2) dla P2|pmtn,prec|Cmax i P|pmtn,forest|Cmax.
• Pomiędzy optymalnym harmonogramem z przerwami i bez zachodzi:
C*max≤(2–m–1)C*max(pmtn)
Zadania niepodzielne P|prec|Cmax.
• Oczywiście problem jest NP–trudny.
• Najbardziej znany podproblem wielomianowy, to P|pi=1,in–forest|Cmax i
P|pi=1,out–forest|Cmax (Algorytm Hu, złożoność O(n))
• Już przypadek P|pi=1,opositing–forest|Cmax jest NP–trudny.
Algorytm Hu:
• Redukcja out–forest Î in–forest: odwrócenie relacji prec, a po
uzyskaniu harmonogramu - odwrócenie go,
• in–forest Î in–tree: dodanie “dodatkowego korzenia” dla wszystkich
drzew, a po uzyskaniu harmonogramu usunięcie go.
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/
10

5
Minimalizacja długości harmonogramu. Maszyny równoległe.

Procesory identyczne, zadania zależne


Zadania niepodzielne
Algorytm Hu (P|pi=1,in–tree|Cmax):
• Poziom zadania – liczba węzłów na drodze do korzenia.
• Zadanie jest gotowe w chwili t – jeżeli wcześniej wykonane zostały
wszystkie zadania poprzedzające je.
Inaczej: algorytm Hu =
Policz poziomy zadań; szeregowanie listowe z ograniczeniami
t:=1; kolejnościowymi +
repeat lista utworzona wg. nierosnącego poziomu.
Wyznacz listę Lt zadań gotowych w chwili t;
Uporządkuj Lt według nierosnącego poziomu;
Przypisz m (lub mniej) zadań z początku Lt do maszyn;
Usuń przypisane zadania z grafu;
t:=t+1;
until
Z.Tarapata, uszeregowano
Obliczenia wszystkie
równoległe i rozproszone, wykład zadania;
nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/
11

Minimalizacja długości harmonogramu. Maszyny równoległe.

Procesory identyczne, zadania zależne


Zadania niepodzielne
Przykład. Algorytm Hu. n=12, m=3.

4 T1 T2 T3 T4 T5 - zadanie dostępne
(wolne)
3 T6 T7 T8 T9

2 T10 T11

1 T12

12
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/

6
Minimalizacja długości harmonogramu. Maszyny równoległe.

Procesory identyczne, zadania zależne


Zadania niepodzielne
Przykład. Algorytm Hu. n=12, m=3.

4 T1 T2 T3 T4 T5

3 T6 T7 T8 T9

M1
2 T10 T11
M2
1 T12 M3

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/


5 13

Minimalizacja długości harmonogramu. Maszyny równoległe.

Procesory identyczne, zadania zależne


Zadania niepodzielne
Przykład. Algorytm Hu. n=12, m=3.

4 T1 T2 T3 T4 T5

3 T6 T7 T8 T9

M1 Z1
2 T10 T11
M2 Z2
1 T12 M3 Z3

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/


5 14

7
Minimalizacja długości harmonogramu. Maszyny równoległe.

Procesory identyczne, zadania zależne


Zadania niepodzielne
Przykład. Algorytm Hu. n=12, m=3.

4 T1 T2 T3 T4 T5

3 T6 T7 T8 T9

M1 Z1 Z4
2 T10 T11
M2 Z2 Z5
1 T12 M3 Z3 Z6

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/


5 15

Minimalizacja długości harmonogramu. Maszyny równoległe.

Procesory identyczne, zadania zależne


Zadania niepodzielne
Przykład. Algorytm Hu. n=12, m=3.

4 T1 T2 T3 T4 T5

3 T6 T7 T8 T9

M1 Z1 Z4 Z7
2 T10 T11
M2 Z2 Z5 Z8
1 T12 M3 Z3 Z6 Z9

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/


5 16

8
Minimalizacja długości harmonogramu. Maszyny równoległe.

Procesory identyczne, zadania zależne


Zadania niepodzielne
Przykład. Algorytm Hu. n=12, m=3.

4 T1 T2 T3 T4 T5

3 T6 T7 T8 T9

M1 Z 1 Z 4 Z 7 Z 10 Z 12
2 T10 T11
M2 Z 2 Z 5 Z 8 Z 11
1 T12 M3 Z3 Z6 Z9

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/


5 17

Minimalizacja długości harmonogramu. Maszyny równoległe.

Procesory identyczne, zadania zależne


Zadania niepodzielne
Dla ogólnego P|prec|Cmax można stosować heurystykę LS. Kolejność
zadań na liście (priorytety) ustala się różnymi metodami. Mogą się
pojawiać anomalie polegające na wydłużaniu się harmonogramu przy:
• wzroście liczby maszyn,
• zmniejszaniu czasu wykonania zadań,
• zmniejszaniu relacji prec,
• zmianie kolejności na liście.

18
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/

9
Minimalizacja średniego czasu przepływu na maszynach równoległych

Procesory identyczne, zadania niezależne


Własność: zadanie Zj na maszynie Mi umieszczone na k–tej pozycji od
końca dodaje do kryterium ΣCj wartość kpj (lub kpij dla maszyn R|).

M Za Zb Zc

×3 ×2 ×1
Wnioski.
• długość pierwszego zadania jest mnożona przez największy
współczynnik, dla kolejnych zadań współczynniki maleją,
• minimalizując ΣCj powinniśmy umieszczać krótkie zadania na początku
(są mnożone przez największe współczynniki),
• optymalne uszeregowanie jest zgodne z regułą SPT (Shortest Processing
Times) – zadania na maszynach są podejmowane w kolejności
niemalejących czasów wykonania,
• ale jak znaleźć optymalne przypisanie zadań do procesorów? 19
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/

Minimalizacja średniego czasu przepływu na maszynach równoległych

Procesory identyczne, zadania niezależne


Zadania podzielne i niepodzielne
Przypadki P||ΣCi i podzielnych P|pmtn|ΣCi można rozpatrywać razem
(optymalny harmonogram podzielny nie musi dzielić zadań).
Algorytm optymalny O(nlog n):
1. Przyjmij, że liczba zadań dzieli się przez m (ew. wprowadź zadania puste),
2. Uporządkuj je według SPT,
3. Przypisuj kolejne m–tki zadań w sposób dowolny do różnych maszyn.
Przykład. m=2, n=5, p1,...,p5=2,5,3,1,3.
SPT: Z0 Z4 Z1 Z3 Z5 Z2 M1 Z4 Z1 Z2
p i= 0 1 2 3 3 5
M2 Z3 Z5
Zadanie puste

Można M1 Z3 Z2 8
Z4
i tak:
M2 ΣCj*=21
Z1 Z5
9 20
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/

10
Minimalizacja średniego czasu przepływu na maszynach równoległych

Procesory identyczne, zadania niezależne


Zadania niepodzielne
Już wersja ważona P2||ΣwjCj jest NP-trudna.
Dowód. Jak w P2||Cmax. Redukcja PP Î P2||ΣwiCi: bierzemy n zadań o
pj= wj=aj (j=1,...,n), dwie maszyny. Wyznacz liczbę C(a1,...,an) taką, że
istnieje uszeregowanie o ΣwjCj≤C(a1,...,an) ⇔ Cmax*= Σi=1,...,n ai/2
(ćwiczenie).
Próbą pogodzenia kryteriów Cmax i ΣCi jest algorytm RPT:
1. Zastosuj szeregowanie LPT.
2. Na każdej maszynie posortuj zadania według SPT.
Dokładność: 1≤ΣCi (RPT)/ΣCi*≤m (zwykle jest lepsza)
Procesory identyczne, zadania zależne
• Już P2|prec,pj=1|ΣCi, P2|chains|ΣCi i P2|chains,pmtn|ΣCi są NP–trudne.
• Dla P|out–tree,pj=1|ΣCi znany jest wielomianowy algorytm oparty na
regule Hu.
21
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/

Minimalizacja średniego czasu przepływu na maszynach równoległych


1
1M1
Procesory dowolne, zadania niezależne
Algorytm O(n3) dla R||ΣCi
1Mm
bazuje na problemie skojarzeń
w grafach. Graf dwudzielny z Z1 2
krawędziami obciążonymi 2M1

wagami:
• W partycji V1 zadania Z1,...,Zn. k
kpij kM i
• W partycji V2 każdy procesor n
razy: kMi, i=1...m, k=1...n. Zj
• Krawędź z Zj do kMi ma wagę
kpij – oznacza ona zadanie Zj na n
maszynie Mi, pozycja k-ta od nM1

końca. Zn

Szukamy najlżejszego skojarzenia o


n krawędziach. Przedstawia ono
szukany harmonogram. nMm
22
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/

11
Minimalizacja maksymalnego opóźnienia na maszynach równoległych

Własności:
• kryterium Lmax jest uogólnieniem Cmax, zagadnienia NP–trudne dla Cmax
pozostaną takie w przypadku Lmax,

M Zb Za M Za Zb

da db da db
• mając do wykonania wiele prac z różnymi wymaganymi terminami
zakończenia spóźnimy się „najmniej” zaczynając zawsze od
„najpilniejszej” pracy,
• to samo innymi słowy: w różnych wariantach stosujemy regułę EDD
(Earliest Due Date) – wybieraj zadania Zj w kolejności niemalejących
wymaganych terminów zakończenia dj,
• problem zadań niepodzielnych na jednej maszynie (1||Lmax) rozwiązuje
właśnie szeregowanie według EDD.
23
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/

Minimalizacja maksymalnego opóźnienia na maszynach równoległych

Procesory identyczne, zadania niezależne


Zadania podzielne

Jedna maszyna: Algorytm Liu O(n2), oparty na regule EDD,


działający nawet przy 1|ri,pmtn|Lmax:
1. Spośród dostępnych zadań przydziel maszynę temu, które ma
najmniejszy wymagany termin zakończenia,
2. Jeśli zadanie zostało zakończone, lub przybyło nowe – wróć do 1
(w drugim przypadku przerywamy zadanie).

Więcej maszyn (P|ri,pmtn|Lmax). Również algorytm wielomianowy:


korzystamy z podprocedury rozwiązującej wersję z “twardymi”
terminami zakończenia P|ri,Ci≤di,pmtn|–, szukamy optymalnego
Lmax metodą połowienia.
24
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/

12
Minimalizacja maksymalnego opóźnienia na maszynach równoległych

P|ri,Ci≤di,pmtn|– sprowadzamy do problemu przepływu. Ustawiamy


wszystkie ri i di w ciąg e0<e1<...<ek.
e1-e0
Tworzymy sieć: w1 Z1
• Ze źródła wychodzi k łuków o
przepustowości m(ei–ei–1) do m(e1-e0)
p1
wierzchołków wi, i=1,...,k.
• Do ujścia wchodzą łuki o
przepustowości pi z m(ei-ei-1) ei-ei-1 pj
Z wi Zj U
wierzchołków Zi, i=1,...,n.
• Między wi a Zj biegnie łuk o
pn
przepustowości ei–ei–1, jeżeli m(ek-ek-1)
zachodzi [ei–1,ei]⊂[rj,dj].
wk Zn
Uszeregowanie istnieje ⇔ istnieje przepływ o objętości Σi=1,...,n pi (można
rozdysponować moce obliczeniowe procesorów do zadań w odpowiednich
odcinkach czasu, tak by wykonać wszystkie).
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/
25

Minimalizacja maksymalnego opóźnienia na maszynach równoległych

Zadania niezależne
Zadania niepodzielne
Niektóre przypadki NP-trudne: P2||Lmax, 1|rj|Lmax.
Przypadki wielomianowe:
• dla zadań jednostkowych P|pj=1,rj|Lmax.
• podobnie dla maszyn jednorodnych Q|pj=1|Lmax (redukcja do
programowania liniowego),
• dla jednej maszyny rozwiązanie optymalne 1||Lmax uzyskamy
szeregując według EDD (to już było ...).

26
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/

13
Minimalizacja maksymalnego opóźnienia na maszynach równoległych

Zadania zależne
Zadania podzielne
Dla jednej maszyny 1|pmtn,prec,rj|Lmax zmodyfikowany algorytm Liu
O(n2):
1. określ zmodyfikowane terminy zakończenia zadań:
dj*=min{dj, min{di:Zj≺Zi}}
2. szereguj według EDD dla nowych dj* z wywłaszczaniem zadania, gdy
pojawia się nowe, wolne, z mniejszym zmodyfikowanym terminem
zakończenia,
3. powtarzaj 2 aż do uszeregowania wszystkich zadań.

• Inne przypadki wielomianowe:


P|pmtn,in–tree|Lmax, Q2|pmtn,prec,rj|Lmax.
• Stosuje się też algorytmy pseudowielomianowe.
27
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/

Minimalizacja maksymalnego opóźnienia na maszynach równoległych

Zadania zależne
Zadania niepodzielne
• Już P|pj=1,out–tree|Lmax jest NP–trudny.
• P|pj=1,in–tree|Lmax rozwiązuje algorytm Bruckera O(nlog n):

next(j) = bezpośredni następnik zadania Zj.


1. wylicz zmodyfikowane terminy zakończenia zadań:
dla korzenia droot*=1–droot i dla pozostałych dk*=max{1+dnext(k)*,1–dk},
2. szereguj zadania dostępne podobnie jak w algorytmie Hu, ale remisy
rozstrzygaj wybierając zadania według nierosnących
zmodyfikowanych terminów zakończenia, a nie według poziomów w
drzewie.

28
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/

14
Minimalizacja maksymalnego opóźnienia na maszynach równoległych

Zadania zależne
Zadania niepodzielne
Przykład. Algorytm Bruckera, n=12, m=3, terminy zakończenia dk w
kółkach.
-5,-3
-3,-3 4 T1 6 T2 -3,0 4 T3 -1,1 2 T T 3 -2,1
4 5

0,-4 1 T6-4,-4 5 T7 -2,-1 3 T8 T9 1 0,-1

-5,-5 6 T10 T11 3 -2,-5

-6 7 T12

29
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/

Minimalizacja maksymalnego opóźnienia na maszynach równoległych

Zadania zależne
Zadania niepodzielne
Przykład. Algorytm Bruckera, n=12, m=3, terminy zakończenia w kółkach.

-3
-3 4 T1 6 T2 0 4 T3 1 2 T T 31
4 5

0 1 T6 -4 5 T7 -1 3 T8 T9 1 0

-5 6 T10 T11 3 -2

-6 7 T12

30
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/

15
Minimalizacja maksymalnego opóźnienia na maszynach równoległych

Zadania zależne
Zadania niepodzielne
Przykład. Algorytm Bruckera, n=12, m=3, terminy zakończenia w kółkach.

-3
-3 T1 T2 0 T3 1 T4 T5 1

0 T6 -4 T7 -1 T8 T9 0

M1
-5 T10 T11 -2
M2
-6 T12 M3

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/


6 31

Minimalizacja maksymalnego opóźnienia na maszynach równoległych

Zadania zależne
Zadania niepodzielne
Przykład. Algorytm Bruckera, n=12, m=3, terminy zakończenia w kółkach.

-3
-3 T1 T2 0 T3 1 T4 T5 1

0 T6 -4 T7 -1 T8 T9 0

M1 Z3
-5 T10 T11 -2
M2 Z4
-6 T12 M3 Z5

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/


6 32

16
Minimalizacja maksymalnego opóźnienia na maszynach równoległych

Zadania zależne
Zadania niepodzielne
Przykład. Algorytm Bruckera, n=12, m=3, terminy zakończenia w kółkach.

-3
-3 T1 T2 0 T3 1 T4 T5 1

0 T6 -4 T7 -1 T8 T9 0

M1 Z3 Z6
-5 T10 T11 -2
M2 Z4 Z8
-6 T12 M3 Z5 Z9

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/


6 33

Minimalizacja maksymalnego opóźnienia na maszynach równoległych

Zadania zależne
Zadania niepodzielne
Przykład. Algorytm Bruckera, n=12, m=3, terminy zakończenia w kółkach.

-3
-3 T1 T2 0 T3 1 T4 T5 1

0 T6 -4 T7 -1 T8 T9 0

M1 Z3 Z6 Z1
-5 T10 T11 -2
M2 Z4 Z8 Z2
-6 T12 M3 Z 5 Z 9 Z 11

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/


6 34

17
Minimalizacja maksymalnego opóźnienia na maszynach równoległych

Zadania zależne
Zadania niepodzielne
Przykład. Algorytm Bruckera, n=12, m=3, terminy zakończenia w kółkach.

-3
-3 T1 T2 0 T3 1 T4 T5 1

0 T6 -4 T7 -1 T8 T9 0

M1 Z3 Z6 Z1 Z7
-5 T10 T11 -2
M2 Z4 Z8 Z2
-6 T12 M3 Z 5 Z 9 Z 11

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/


6 35

Minimalizacja maksymalnego opóźnienia na maszynach równoległych

Zadania zależne
Zadania niepodzielne
Przykład. Algorytm Bruckera, n=12, m=3, terminy zakończenia w kółkach.

-3
-3 T1 T2 0 T3 1 T4 T5 1

0 T6 -4 T7 -1 T8 T9 0

M1 Z 3 Z 6 Z 1 Z 7 Z 10 Z 12
-5 T10 T11 -2
M2 Z4 Z8 Z2
-6 T12
M3 Z 5 Z 9 Z 11

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/


6 36

18
Minimalizacja maksymalnego opóźnienia na maszynach równoległych

Zadania zależne
Zadania niepodzielne
Przykład. Algorytm Bruckera, n=12, m=3, terminy zakończenia w kółkach.
Opóźnienia:
-3
-1 4 T1 6 T2 -3 4 T3 -1 2 T T 3 -2
4 5

1 T -1 5 T7 -1 3 T8 T9 1 1
Lmax*=1 6

M1 Z 3 Z 6 Z 1 Z 7 Z 10 Z 12
-1 6 T10 T11 3 0
M2 Z4 Z8 Z2
-1 7 T12
M3 Z 5 Z 9 Z 11

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/


6 37

Dziękuję za uwagę

38
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 4b, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/

19

You might also like