Rozvrhování na více procesorech Rozvrhování na více procesorech je složitjší úloha než na jednom procesoru. Uvažujeme m procesor. Rozlišujeme typy procesor - paralelní nebo dedikované a jejich rychlosti - identické, uniformní nebo nesouvztažné. Úloha rozvrhování na dvou paralelních procesorech je již NP-úplný problém! 1) Rozvrhování na paralelních procesorech Algoritmus LPT (Longest Processing Time): Mjme n úkol, dány procesní asy p j, asy pipravenosti r j = 0 a m paralelních procesor. Algoritmus minimalizuje délku rozvrhu C max. Algoritmus má složitost O(n log n). Algoritmus: begin Vytvo seznam úkol a seti ho podle nerostoucích procesních as, tzn. p 1 p 2... p n ; for j = 1 to m do t j := 0; {Procesory jsou na zaátku volné} j := 1; repeat Uri k takové, že t k = min{ t }; 1 i m i {Vyber procesor s nejkratším rozvrhem} Pia úkol T j procesoru P k v ase t k ; {První nenaplánovaný úkol ze seznamu je pidlen prvnímu volnému procesoru} s k := s k + p j ; j := j + 1; until j = n; end. Nalezené ešení je v nejhorším pípad p LPT -krát horší, než optimum. Pro p LPT platí 4 1 p LPT =. 3 3m
Píklad 1: Máme výpoetní procesy A, B, C, D, E a F, které je nutno rozvrhnout pro ti identické výpoetní procesory. Proces A trvá asové kvantum 3 ms, proces B trvá asové kvantum 4 ms, proces C trvá asové kvantum 5 ms, proces D trvá asové kvantum 6 ms, proces E trvá asové kvantum 2 ms a proces F trvá asové kvantum 7 ms. Naleznte rozvrh. Upravte rozvrh v pípad, že je možné zmenšit délku rozvrhu. Procesní asy úkol charakterizuje vektor p = (3,4,5,6,2,7) Aplikací LPT algoritmu dostaneme rozvrh, který má délku C max = 9 a je optimální: T. 1 2 3 4 5 6 7 8 9 P 1 F E P 2 D A P 3 C B 2) Rozvrhování na dedikovaných procesorech Pi rozvrhování na dedikovaných procesorech vychází strom ešení mén "košatý" než u paralelních procesor, jeho konstrukce je obtížnjší. Nalezení obecných heuristik pro úplné prohledání stromu a nalezení odhad pro metodu vtví a mezí je velmi složitá úloha. Pro dedikované procesory rozlišujeme klasické úlohy bez preempce: flow-shop, open-shop a job-shop. A. Úloha flow-shop Úloha klasické kombinatorické optimalizace. Existuje jen nkolik málo pípad ešitelných v polynomiálním ase, mezi n patí úloha flow-shop na dvou procesorech a úloha flow-shop na tech procesorech splující uritá omezení. Úlohu flow-shop na dvou procesorech lze ešit tzv. Johnsonovým algoritmem. Úlohy flow-shop lze ešit obecn metodou vtví a mezí (permutaní rozvrhy).
Johnsonv algoritmus (1954): Mjme N zakázek, každá zakázka nech se skládá ze dvou operací s danými procesní asy p ij, asy pipravenosti jsou r j = 0. Algoritmus minimalizuje délku rozvrhu C max. Algoritmus: Z množiny J všech zakázek vytvoíme dva seznamy L 1 a L 2 : L 1 Ji p1i p2i} a = { L = J L. Seznam L 1 uspoádáme podle neklesajících procesních as p 1i : p 11 p 12... p 1n (první vybíráme nejkratší) a seznam L 2 uspoádáme podle nerostoucích procesních as p 2i : p 21 p 22... p 2n (první vybíráme nejdelší). Potom ve smyslu minima délky rozvrhu C max je optimální rozvrh tvoen zetzením seznam L 1 a L 2. 2 1 Píklad 2: Máme zakázky A, B, C, D, E a F, které se skládají ze dvou úkol. První operací je obrábní obrobku na soustruhu a druhá následující operace je dobroušení obrobku frézou. Doby operací, které jsou provádné na jednotlivých strojích, lze vyjádit následující tabulkou: J i (zakázky) A B C D E F p 1i (soustruh) 5 4 2 6 2 3 p 2i (fréza) 3 5 3 1 4 2 Naleznte rozvrh a upravte ho v pípad, že je možné jej optimalizovat vzhledem k délce rozvrhu nebo odstranit prostoje.
Do seznamu L 1 patí po uspoádání zakázky: L 1 = {E,C,B} nebo {C,E,B}, do seznamu L 2 patí po uspoádání zakázky: L 2 = {A,F,D}. Výsledný permutaní rozvrh je v poadí zakázek: E-C-B-A-F-D nebo C-E-B-A-F-D: (i) Permutaní rozvrh E-C-B-A-F-D P 1 E C B A F D P 2 E C B A F D Permutaní rozvrh (i) má délku C max = 23 a obsahuje jeden prostoj. (ii) Permutaní rozvrh C-E-B-A-F-D P 1 C E B A F D P 2 C E B A F D Permutaní rozvrh (ii) má délku C max = 23 a obsahuje jeden prostoj. Po úprav rozvrhu mžeme odstranit prostoj, délka rozvrhu zstane zachována: P 1 C E B A F D P 2 C E B A F D B. Úloha open-shop Analogie úlohy flow-shop. Nezáleží na poadí úkol. ešení úlohy flow-shop je i ešením úlohy open-shop. ešení v polynomiálním ase jen pro dva procesory. C. Úloha job-shop Nejsložitjší diskrétní optimalizaní úloha. Precedenní omezení již v definici úlohy. Nejjednodušší formulace úlohy je již NP-úplný problém. Možno ešit graficky nebo použít model úlohy a ešit pomocí grafové teorie.
Navazující pedmt, 35RDU - Rozvrhování v systémech diskrétních událostí, dr. Hanzálek Úlohy Úloha 11.1: Máme výpoetní procesy A, B, C, D, E a F, které je nutno rozvrhnout pro ti identické výpoetní procesory. Proces A trvá asové 5 ms, proces B trvá asové kvantum 4 ms, proces C trvá asové kvantum 3 ms, proces D trvá asové kvantum 7 ms, proces E trvá asové kvantum 3 ms a proces F trvá asové kvantum 6 ms. Naleznte rozvrh. Upravte rozvrh v pípad, že je možné zmenšit délku rozvrhu. Úloha 11.2: Máme zakázky A, B, C, D, E a F, které se skládají ze dvou úkol. První operací je obrábní obrobku na soustruhu a druhá následující operace je dobroušení obrobku frézou. Doby operací, které jsou provádné na jednotlivých strojích, lze vyjádit následující tabulkou: J i (zakázky) A B C D E F p 1i (soustruh) 4 3 1 6 1 4 p 2i (fréza) 3 5 3 4 2 2 Naleznte rozvrh a upravte ho v pípad, že je možné jej optimalizovat vzhledem k délce rozvrhu nebo odstranit prostoje.