Návrh paralelních algoritmů
|
|
- Roman Staněk
- před 8 lety
- Počet zobrazení:
Transkript
1 Návrh paralelních algoritmů Úvod Návrh paralelních algoritmů Task/channel model Fosterova metodika návrhu paralelních algoritmů Partitioning Communication Aglomerace Mapování Modely paralelních algoritmů Analýza paralelních algoritmů
2 Úvod I. Vývoj paralelního algoritmu je nunto chápat jako optimalizaci. 1. nejprve vždy vyvíjíme co nejjednodušší sekvenční algoritmus bez optimalizací
3 Úvod I. Vývoj paralelního algoritmu je nunto chápat jako optimalizaci. 1. nejprve vždy vyvíjíme co nejjednodušší sekvenční algoritmus bez optimalizací za každou cenu se vyhýbáme předčasné optimalizaci
4 Úvod I. Vývoj paralelního algoritmu je nunto chápat jako optimalizaci. 1. nejprve vždy vyvíjíme co nejjednodušší sekvenční algoritmus bez optimalizací za každou cenu se vyhýbáme předčasné optimalizaci ta může zcela zbytečně poničit čístý návrh algoritmu
5 Úvod I. Vývoj paralelního algoritmu je nunto chápat jako optimalizaci. 1. nejprve vždy vyvíjíme co nejjednodušší sekvenční algoritmus bez optimalizací za každou cenu se vyhýbáme předčasné optimalizaci ta může zcela zbytečně poničit čístý návrh algoritmu bez základní jenoduché verze kódu nemůžeme poměřit přínos paralelizace
6 Úvod I. Vývoj paralelního algoritmu je nunto chápat jako optimalizaci. 1. nejprve vždy vyvíjíme co nejjednodušší sekvenční algoritmus bez optimalizací za každou cenu se vyhýbáme předčasné optimalizaci ta může zcela zbytečně poničit čístý návrh algoritmu bez základní jenoduché verze kódu nemůžeme poměřit přínos paralelizace 2. máme-li základní funkční kód, který není dostatečně výkonný, přistupujeme k optimalizacím
7 Úvod I. Vývoj paralelního algoritmu je nunto chápat jako optimalizaci. 1. nejprve vždy vyvíjíme co nejjednodušší sekvenční algoritmus bez optimalizací za každou cenu se vyhýbáme předčasné optimalizaci ta může zcela zbytečně poničit čístý návrh algoritmu bez základní jenoduché verze kódu nemůžeme poměřit přínos paralelizace 2. máme-li základní funkční kód, který není dostatečně výkonný, přistupujeme k optimalizacím pokud je to možné, optimalizujeme jen sekvenční kód
8 Úvod I. Vývoj paralelního algoritmu je nunto chápat jako optimalizaci. 1. nejprve vždy vyvíjíme co nejjednodušší sekvenční algoritmus bez optimalizací za každou cenu se vyhýbáme předčasné optimalizaci ta může zcela zbytečně poničit čístý návrh algoritmu bez základní jenoduché verze kódu nemůžeme poměřit přínos paralelizace 2. máme-li základní funkční kód, který není dostatečně výkonný, přistupujeme k optimalizacím pokud je to možné, optimalizujeme jen sekvenční kód pokud to nepostačuje, přikročíme k paralelizaci
9 Úvod I. Vývoj paralelního algoritmu je nunto chápat jako optimalizaci. 1. nejprve vždy vyvíjíme co nejjednodušší sekvenční algoritmus bez optimalizací za každou cenu se vyhýbáme předčasné optimalizaci ta může zcela zbytečně poničit čístý návrh algoritmu bez základní jenoduché verze kódu nemůžeme poměřit přínos paralelizace 2. máme-li základní funkční kód, který není dostatečně výkonný, přistupujeme k optimalizacím pokud je to možné, optimalizujeme jen sekvenční kód pokud to nepostačuje, přikročíme k paralelizaci 3. během implementace optimalizací provádíme průběžné testy a kontrolujeme, zda optimalizovaný kód dává stále správné výsledky
10 Úvod I. Vývoj paralelního algoritmu je nunto chápat jako optimalizaci. 1. nejprve vždy vyvíjíme co nejjednodušší sekvenční algoritmus bez optimalizací za každou cenu se vyhýbáme předčasné optimalizaci ta může zcela zbytečně poničit čístý návrh algoritmu bez základní jenoduché verze kódu nemůžeme poměřit přínos paralelizace 2. máme-li základní funkční kód, který není dostatečně výkonný, přistupujeme k optimalizacím pokud je to možné, optimalizujeme jen sekvenční kód pokud to nepostačuje, přikročíme k paralelizaci 3. během implementace optimalizací provádíme průběžné testy a kontrolujeme, zda optimalizovaný kód dává stále správné výsledky 4. nakonec poměřujeme přínos optimalizace tj. výslednou efektivitu paralelizace
11 Úvod II. Budeme se tedy zabývat: 1. návrhem paralelních algoritmů 2. (testováním paralelních algoritmů) 3. analýzou paralelních algoritmů
12 Návrh paralelních algoritmů Metodiky návrhu paralelních algoritmů: task/channel model - Ian Foster naprosto nejběžnější postup při návrhu paralelních algoritmů bulk synchronous parallel model -
13 Task/channel model I. Tento model reprezentuje paralelní výpočet jako množinu úloh (tasks), které mezi sebou komunikují pomocí komunikačních kanálů (channels).
14 Task/channel model I. Tento model reprezentuje paralelní výpočet jako množinu úloh (tasks), které mezi sebou komunikují pomocí komunikačních kanálů (channels). Task představuje: program lokální pamět instrukce a soukromá data vstupně/výstupní porty task je používá ke komunikaci s ostatními tasky
15 Task/channel model II. Channel je modelován jako: fronta zpráv spojující výstupní port jednoho tasku se vstupním portem nějakého jiného tasku data se na vstupu přijemce objevují ve stejném pořadí, v jakém bylo odeslána odesílatelem task nemůže přijímat data, která nebyla ještě odeslána přijímání zpráv je vždy blokující task, který zrávu odesílá nemusí čekat, až druhý task zprávu přijme odesílání zpráv je vždy neblokující přijímání zpráv je synchronní odesílání zpráv je asynchronní
16 Task/channel model III. Výhodou task/channel modelu je, že jasně odlišuje přístup do lokální paměti a komunikaci mezi tasky. to je nezbytné pro návrh algoritmů pro architektury s distribuovanou pamětí umožňuje to efektivnější návrh algoritmů pro architektury se sdílenou pamětí
17 Task/channel model III. Výhodou task/channel modelu je, že jasně odlišuje přístup do lokální paměti a komunikaci mezi tasky. to je nezbytné pro návrh algoritmů pro architektury s distribuovanou pamětí umožňuje to efektivnější návrh algoritmů pro architektury se sdílenou pamětí Definition Doba běhu paralelního algoritmu je pak definována jako čas, po který byl aktivní alespoň jeden task.
18 Fosterova metodika návrhu paralelních algoritmů Ian Foster navrhl čtyři kroky vedoucí k návrhu paralelního algoritmu: 1. partitioning - rozdělení úlohy celou úlohu rozdělíme na malé kousky - prvotní tasky - primitive tasks snažíme se o co nejjemnější rozdělení 2. communication - komunikace odvodíme, jak spolu musí jednotlivé podúlohy komunikovat 3. agglomeration - aglomerace slučujeme malé podúlohy do větších za účelem redukce komunikace (počtu kanálů) dostáváma tak vlastní tasky 4. mapping - mapování jednotlivé tasky přidělujeme procesorům/výpočetním jednotkám
19 Partitioning I. jde o proces rozdělení celé úlohy na menší celky - primitive tasks. tento proces se také nazývá dekompozice. existují různé techniky dekompozice
20 Rekurzivní dekompozice 1. rekurzivní dekompozice je vhodná pro algoritmy navržené metodou "rozděl a panuj" metodu "rozděl a panuj"využijeme k vygenerování prvotních tasku původní úloha se rozdělí na několik menších celků, na které se rekurzivně aplikuje stejný postup zastavíme se většinou u velmi malých úloh, které jsou mnohem jednodušší k vyřešení typyckými příklady pro tuto dekompozici jsou - quick sort, rychlá fourierova transformace nebo binární vyhledávání v setříděném seznamu
21 Datová dekompozice I. 2. datová dekompozice je vhodná pro úlohy zpracovávající velké množství dat datovou dekompozici je možné provádět podle vstupních dat výstupních dat podle vstupních i výstupních dat podle mezivýsledků data rozdělíme na menší celky a k nim přidělíme prvotní tasky, které je budou zpracovávat
22 Datová dekompozice II. Příklad: Násobení matic ( ) ( C11 C 12 A11 A = 12 C 21 C 22 A 21 A 22 ) ( B11 B 12 B 21 B 22 ) výpočet lze rozdělit na čtyři úlohy C 11 = A 11 B 11 + A 12 B 21, C 12 = A 11 B 12 + A 12 B 22, C 21 = A 21 B 11 + A 22 B 21, C 22 = A 21 B 12 + A 22 B 22. jde o datovou dekompozici podle výstupních dat
23 Datová dekompozice III. Příklad: Výpočet součtu, součinu nebo průměru dlouhé řady výstupem je jen jedno číslo, nelze tedy provést dekompozici podle výstupních dat zadanou posloupnost můžeme rozdělit na několik podposloupností každou podposloupnost zpracuje jeden prvotní task jde o dekompozici podle výstupních dat
24 Datová dekompozice IV. Příklad: Spočítání výskytu zadaných sekvencí v jedné dlouhé posloupnosti (bioinformatika) nejprve můžeme provést dekompozici podle výstupních dat získáme několik podúloh, z nichž každá počítá výskyty jedné sekvence v celé posloupnosti na tyto podúlohy aplikujeme dekompozici podle vstupních dat každou podúlohu tak rozdělíme na několik menších, z nichž každá počítá výskyt dané sekvence v podposloupnosti původní posloupnosti
25 Dekompozice při prohledávání I. 3. dekompozice při prohledávání využívá se při prohledávání stavového stromu vyskytuje se často v úlohách z umělé inteligence hra 15, šachy
26 Dekompozice při prohledávání II. Příklad: Hra Lišák - zjednodušená hra Cílový stav hry
27 Dekompozice při prohledávání III. hru 15 (lišák) lze řešit prohledáváním stavového stromu strom začneme prohledávat sekvenčně s tím, jak se strom větví, vytváříme pro prohledání každé větve nový task prohledání různých větví může trvat různě dlouho
28 Spekulativní dekompozice 4. spekulativní dekompozice pokud se výpočet dělí na několik větví, lze výsledky jednotlivých větví vypočítat dopředu, a pak použít výsledek té větve, která bude opravdu provedena zpracování jednotlivých větví provádí nové tasky je dobré umět určit, které větve mají větší pravděpodobnost, že budou provedeny
29 Hybridní dekompozice 5. hybridní dekompozice někdy je nutné použít více z předchozích technik pro dekompozici
30 Charakteristika prvotních tasků I. Prvotní tasky lze charakterizovat (klasifikovat) podle následujících kritérií:
31 Charakteristika prvotních tasků II. 1.způsob generování prvotních tasků staticky - všechny tasky jsou známé před započetím výpočtu datová dekompozice většinou vede ke statickým prvotním taskům rekurzivní dekompozice může v některých případech také vést ke statickým prvotním taskum nalezení minima v setříděném seznamu dekompozice při prohledávání může vést na statické p. tasky strom prohledáváme sekvečně tak dlouho, až získáme dostatečně velký počet větví ty pak prohledáme paralelně - jejich počet je ale konstantní dynamicky - tasky vznikají až za chodu programu např. rekurzivní dekompozice u quick-sortu vede k dynamickým prvotním taskum dekompozice při prohledávání může vést na dynamické p. tasky při prohledávání stromu vytváříme nový task při každém větvení
32 Charakteristika prvotních tasků III. 2. velikost prvotních tasků velikostí zde myslíme čas potřebný k proběhnutí celého tasku tasky mohou být: uniformní násobení plné matice s vektorem, kdy jeden task provede násobení vektoru s jedním řádkem matice neuniformní paralelizace algoritmu quicksort task je dynamický, ale ve chvíli, kdy je vytvořen, dokážeme určit jeho složitost
33 Charakteristika prvotních tasků IV. 3. znalost velikosti prvotních tasků zde rozhoduje, zda je velikost tasku například u hry 15 apod. nedokážeme předem určit velikost tasku u násobení matic to lze naopak snadno
34 Charakteristika prvotních tasků V. 4. velikost dat spojených s taskem zde záleží hlavně na poměru vstupních, výstupních dat a náročnosti výpočtu suma dlouhé řady velký objem vstupních dat, tomu úměrný objem výpočtu a velmi malý objem výstupních dat hra 15 malý objem vstupních dat, relativně malý objem výstupních dat, často neúměrně náročný výpočet quicksort objem vstupních a výstupních dat včetně složitosti výpočtu jsou přibližně stejné
35 Graf závislostí tasků Task-dependency graph některé tasky mohou být spuštěny, až když jiné ukončily svou činnost kromě kominukace mezi tasky je toto další typ závislosti popisuje ho graf závislosti tasků jde o orientovaný acyklický graf uzly odpovídají jednotlivým prvotním taskům uzly mohou být ohodnoceny podle množství výpočtů, jež je nutné provést k úplnému vyřešení tasku task může být řešen, až když jsou vyřešeny všechny podproblémy, ze kterých do něj vede hrana graf nemusí být souvislý dokonce může být úplně bez hran
36 Graf závislostí tasků I. Příklad: Chceme vyhodnotit následující SQL dotaz: MODEL = "Civic"AND YEAR = "2001"AND ( COLOR = "Green"OR COLOR = "White") CIVIC 2001 WHITE GREEN CIVIC AND 2001 WHITE OR GREEN CIVIC AND 2001 AND ( WHITE OR GREEN )
37 Graf závislostí tasků II. CIVIC 2001 WHITE GREEN WHITE OR GREEN 2001 AND ( WHITE OR GREEN ) CIVIC AND 2001 AND ( WHITE OR GREEN )
38 Graf závislostí tasků III. Podle grafu závislostí tasků lze popsat kvalitu navrhovaného paralelního algoritmu: maximální stupeň souběžnosti (maximal degree of concurrency) udává, jaký je maximální počet tasků, jež mohou být zpracovány souběžně v libovolném stavu výpočtu kritická cesta (critical path) je nejdelší cesta od některého počátečního k některému cílovému tasku délka kritické cesty ( critical path length ) součet hodnot (udávajících náročnost tasku) uzlů podél kritické cesty průměrný stupeň souběžnosti (average degree of concurrency) celková práce všech tasků/délka kritické cesty
39 Ohodnocení prvotních tasků Dobře generované prvotní tasky by měly splňovat následující kritéria: mělo by jich být o jeden a více řádů více, než je počet procesorů pokud to není splněno, jsme velmi omezeni v dalších krocích návrhu může se stát, že nedokážeme efektivně obsadit všechny procesory redundantní výpočty a datové struktury jsou omezeny na minimum není-li toto splněno, efektivita výsledného algoritmu může být nízká může se snížit ještě více s rostoucí velikostí celé úlohy prvotní tasky by měly být přibližně stejně velké pokud tomu tak není, může být problém rozdělit zátež rovnoměrně mezi všechny procesory počet prvotních tasku je rostoucí funkcí velikosti celé úlohy pokud ne, může být problém s využitím velkého počtu procesorů pro velké úlohy
40 Komunikace Po vytvoření prvotních tásků je nutné určit jejich způsob komunikace. Existují dva způsoby komunikace: lokální komunikace jeden task komunikuje s malým počtem jiných tasků například výměna okrajových hodnot podoblastí při numerických výpočtech globální komunikace komunikace, které se účastní velký počet tasku často jsou to všechny například může jít o výpočet sumy mezivýsledků z jednotlivých tasků Komunikace výrazně příspívá k režijním nákladům paralelních algoritmů, protože u sekvečních se vůbec nevyskytuje.
41 Graf interakcí I. Komunikační vzor zachycuje tzv. graf interakcí (task-interaction graph). jeho vrcholy jsou tasky mezi dvěma vrcholy vede hrana, právě když spolu tyto dva tasky musí komunikovat graf závislostí je často podgrafem grafu interakcí
42 Graf interakcí II. Rovnice vedení tepla u t u = 0 P 1 P 2 P 3 P 4 graf závislostí graf interakcí
43 Graf interakcí III. Násobení řídké matice a vektoru P 1 1 P 2 P 3 P 4 P 5 P 6 P 7 P P 1 P 5 2 P 3 P 6 4 P 5 P 6 P 7 P
44 Charakteristiky interakcí Interakce lze dělit podle následujících kritérií: statické a dynamické u statických interakcí se ví předem, kdy budou probíhat, je snažší je programovat příklad dynamických je třeba hra 15 některé stavy mohou být prohledávány déle, než jiné procesy, které mají již hotovou práci mohou převzít některé výpočty od ostatních regulární a iregulární interakce mohou mít určitou strukturu příklad regulárních interakcí - numerický výpočet na regulární síti příklad iregulárních interakcí - násobení řídká matice krát vektor interakce jen se čtením nebo i se zápisem to je důležité u systémů se sdílenou pamětí
45 Ohodnocení komunikace II. Dobře navržená komunikace by měla splňovat: komunikační operace jsou dobře vybalancovány (rovnoměrně rozděleny) mezi všechny tasky tasky lze uspořádat do takové topologie, že každý task komunikuje jen s malým počtem sousedních tasků tasky mohou provádět komunikaci současně tasky mohou provádět výpočty současně
46 Aglomerace I. v prvním kroku návrhu paralelního algoritmu jsme se snažili o maximální paralelismus to většinou vede k příliš velkému počtu (primitivních) tasků jejich počet je často nutné zredukovat na počet vhodný pro danou paralelní architekturu aglomeraci lze určit podle grafu závislostí menší tasky, které nemohou být zpracovány současně, je dobré spojit do jednoho většího tím dochází k tzv. nárůstu lokality - (increasing locality) nebo podle způsobu komunikace mezi tasky tasky, které se spojí do jednoho mezi sebou již nemusí komunikovat
47 Aglomerace II. Dobře provedená aglomerace by měla splňovat: zvýší lokalitu výsledného paralelního algoritmu nově vytvořené tasky mají podobnou výpočetní a komunikační složitost počet tasků je rostoucí funkcí velikosti úlohy výsledný počet tasků je co nejmenší možný, ale větší nebo roven počtu procesorů cílové architektury náročnost úpravy sekvečního algoritmu na paralelní je přiměřená
48 Mapování jde o krok, kdy se p procesorům přidělují jednotlivé tasky u SMP architektur (se sdílenou pamětí) tuto práci obstarává operační systém snahou je maximalizace využití procesorů a minimalizace meziprocesorové komunikace meziprocesorová komunikace roste, pokud dva tasky spojené channelem jsou mapovány na odlišné procesory a naopak využití procesorů roste s počtem obsazených procesorů jde tedy o dva protichůdné požadavky mapujeme-li všechny tasky na jeden procesor, získáme minimální meziprocesorovou komunikaci, ale také minimální využití procesorů nalézt optimální řešení tohoto problému je NP-složitý (NP-hard) problém
49 Mapování také se snažíme o vyvážené namapování tasků na procesory jde o to, aby všechny procesory byly ideálně stejně vytížené způsoby mapování dělíme na statické dynamické
50 Statické mapování 1. Statické mapování a. blokové mapování P 0 P 3 P 6 P 1 P 4 P 7 P 2 P 5 = P 8 P 0,P 1,P 2 P 3,P 4,P 5 P 6,P 7,P 8 P 0, P 3, P 6 P 1, P 4, P 7 P 2, P 5, P 8
51 Statické mapování b. cyklické a blokově cyklické mapování používá se například u LU faktorizace zde se objem výpočtů liší pro různé prvky matice A 11 A 21 A 12 A 22 A 13 A 23 = L 11 L 21 0 L U 11 0 U 12 U 22 U 13 U 23 A 31 A 32 A 33 L 31 L 32 L U 33
52 Statické mapování Algoritmus pro LU rozklad: for ( k = 1; k <= n; k ++ ) { // k-tý řádek dělíme pivotem for( j = k; j <= n; j ++ ) A[ j ][ k ] /= A[ k ][ k ]; } // od řádků pod k-tým odečítáme j-tý for( j = k + 1; j <= n; j ++ ) for( i = k + 1; i <= n; i ++ ) A[ i ][ j ] -= A[ i ][ k ] * A[ k ][ j ];
53 Statické mapování blokové mapování by tu nebylo dobré procesor s blokem v levém horním rohu by prováděl mnohem méně výpočtů než ten s pravým dolním blokem P 0 P 1 P 0 P 1 P 2 P 3 P 2 P 3 P 0 P 1 P 0 P 1 P 2 P 3 P 2 P 3
54 Statické mapování c. náhodné blokové mapování používá se tehdy, když problém nemá pevnou strukturu Příklad: Mapování řádků řídké matice V = {0, 1, 2 8} - indexy řádků random(v ) = {8, 2, 6, 0, 3, 7, 1, 5, 4} mapování - 8, 2, 6, 0, 3, 7, 1, 5, 4 }{{}}{{}}{{} P 0 P 1 P 2
55 Statické mapování d. mapování podle dělení grafů například když chceme rozdělit nestrukturovanou numerickou sít na podoblasti
56 Dynamické mapování 2. Dynamické mapování je vhodné tam, kde statické mapování rozděluje zátěž nerovnoměrně a. centralizovaná schémata pro dynamické mapování spustí se speciální proces pro přidělování tasků master/slave producer/consumers existuje struktura, kam se ukládájí úlohy a odkud si je pracovní procesy berou pokud sem přistupuje hodně procesů, může docházet k velkým prodlevám můžeme se pokusit přidělovat větší úlohy a tím snížit počet přístupů s tím roste riziko nerovnoměrného rozdělení tasků
57 Dynamické mapování b. distribuovaná schémata pro dynamické mapování tasky jsou nejprve rozděleny mezi procesy následně každý proces může poslat nebo přijmout určitý objem práce toto mapování je náročné na implementaci
58 Mapování - přehled??? Statický počet tásků. Dynamický tásků. počet Strukturovaný komunikace. vzor Nestrukturovaný vzor komunikace. Přibližně konstatní doba výpočtu na jeden task. Výpočetní doba se mění podle oblasti výpočtu. Méně tásků. dlouhodobých Mnoho krátkodobých tasků. Blokové mapování. Cyklické a blokově cyklické mapování tásků. Náhodné mapování mapování dělení grafů. blokové nebo podle Centralizované schéma. Distribuované schéma.
59 Možnosti snížení režie způsobené interakcemi maximalizace využití lokálních dat tzv. data locality při delších výpočtech se sdílenými daty je lepší vytvořit lokální kopii minimalizace objemu dat přenášených mezi procesy tzv. temporal locality někdy je lepší provést stejný výpočet na všech procesech, než jen na jednom a následně výsledek distribuovat mezi ostatní minimalizace četnosti interakcí pokud to jde, slučujeme více interakcí (komunikačních operací) do jediné zabránit současnému přístupu více procesorů na jedno místo to umožní provádět interakce současně
60 Možnosti snížení režie způsobené interakcemi současný běh interakce a výpočtu nejprve provedeme výpočet s daty potřebnými pro interakci následně se spustí interakce a provádí se výpočet na ostatních datech to lze často využít při evolučních výpočtech na numerických sítích celá sít se rozdělí na podoblasti napočítáme novou časovou hladinou na okrajích podoblastí hodnoty na okrajích je potřeba poslat sousedním procesům spustíme interakci a současně napočítáváme novou časovou hladinu uvnitř podoblastí
61 Modely paralelních algoritmů datově paralelní vyznačují se statickým mapováním každý proces pracuje s různými daty úlohově paralelní jde o algoritmy odvozené z grafu závislostí tasků nebo algoritmy odvozené podle metody rozděl a panuj zásobník úloh obsahuje centrální/distribuovanou strukturu s tasky pro jednotlivé procesy tasky mohou být vytvářeny staticky na počátku nebo dynamicky za chodu master/slave jeden nebo více procesů generuje tasky ostatní procesy je provádějí pipelining proud dat prochází od jednoho procesu ke druhému, a každý proces na nich provádí určitý dílčí výpočet hybridní úlohy
62 Analýza paralelních algoritmů I. použití dvou procesorů místo jednoho prakticky nikdy nevede k ukončení výpočtu v polovičním čase paralelizace s sebou vždy nese určitou režiji navíc: interakce a komunikace mezi jednotlivými procesy prostoje procesorů nerovnoměrné rozdělení práce čekání na ostatní procesy některé výpočty navíc oproti sekvenčnímu algoritmu Naší snahou nyní bude odvození teorie pro ohodnocení úspěšnosti paralelizace dané úlohy. Poznámka: p opět označuje počet procesorů, které se účastní paralelního výpočtu a n je velikost řešené úlohy (podle vstupních dat).
63 Analýza paralelních algoritmů II. Definition Sériový (sekvenční) čas běhu algoritmu (serial runtime) - T S (n) - je doba mezi spuštěním a ukončením výpočtu sekvenčního algoritmu na úloze o velikosti n. Definition Paralelní čas běhu algoritmu (parallel runtime) - T P (n, p) - je doba mezi spuštěním algoritmu a okamžikem, kdy poslední proces ukončí svůj výpočet.
64 Analýza paralelních algoritmů II. Definition Sériový (sekvenční) čas běhu algoritmu (serial runtime) - T S (n) - je doba mezi spuštěním a ukončením výpočtu sekvenčního algoritmu na úloze o velikosti n. Definition Paralelní čas běhu algoritmu (parallel runtime) - T P (n, p) - je doba mezi spuštěním algoritmu a okamžikem, kdy poslední proces ukončí svůj výpočet. Poznámka: Pokud porovnáváme sekvenční a paralelní čas, měříme sekvenční čas na nejrychlejším známém sekvečním algoritmu. Navíc požadujeme nejrychlejší známý sekveční algoritmus pro danou velikost úlohy, ne asymptoticky nejrychlejší sekvenční algoritmus.
65 Analýza paralelních algoritmů II. Definition Sériový (sekvenční) čas běhu algoritmu (serial runtime) - T S (n) - je doba mezi spuštěním a ukončením výpočtu sekvenčního algoritmu na úloze o velikosti n. Definition Paralelní čas běhu algoritmu (parallel runtime) - T P (n, p) - je doba mezi spuštěním algoritmu a okamžikem, kdy poslední proces ukončí svůj výpočet. Poznámka: Pokud porovnáváme sekvenční a paralelní čas, měříme sekvenční čas na nejrychlejším známém sekvečním algoritmu. Navíc požadujeme nejrychlejší známý sekveční algoritmus pro danou velikost úlohy, ne asymptoticky nejrychlejší sekvenční algoritmus.
66 Analýza paralelních algoritmů III. Definition Čas čistě sekvenční části algoritmu (time of inherently sequential part) - P S (n) je doba, za kterou proběhne výpočet neparalelizovatelné části algoritmu. Definition Čas paralelizovatelné části algoritmu (time of parallelisable part) - P P (n) je doba, za kterou proběhne výpočet paralelizovatelné části algoritmu při sekvenčním zpracování. P P (n) = T S (n) P S (n)
67 Analýza paralelních algoritmů IV. Definition Celková režie (total overhead) - T O (n, p) - je definována jako T O (n, p) = pt P (n, p) T S (n).
68 Analýza paralelních algoritmů IV. Definition Celková režie (total overhead) - T O (n, p) - je definována jako T O (n, p) = pt P (n, p) T S (n). Definition Urychlení (speedup) - S(n, p) - je definováno jako S(n, p) = T S (n)/t P (n, p).
69 Analýza paralelních algoritmů V. platí, že S(n, p) p kdyby S(n, p) > p, pak by žádný procesor nesměl běžet déle než T S (n)/p potom bychom mohli vytvořit sekvenční algoritmus, který bude emulovat paralelní výpočet a dostaneme menší T S (n) v praxi lze ale často pozorovat superlineární urychlení, kdy je S(n, p) > p rozdělená úloha se může vejít do vyrovnávacích pamětí procesorů, datová komunikace je tak rychlejší dekompozice při prohledávání tím, že prohledáváme současně více větví stavového stromu, můžeme řešení najít dříve sekvenčně lze toto napodobit prohledáváním stromu do šířky - to je ale težší k implementování
70 Analýza paralelních algoritmů VI. Definition Efektivita (efficiency) - E(n) - je definována jako E(n, p) = S(n, p)/p 1. je-li S(n, p) lineární funkcí vůči p, pak E(n, p) = E(n), máme algoritmus s efektivitou nezávislou na počtu procesorů, což by byl ideální stav s rostoucím počtem procesorů efektivita ve většině případů klesá
71 Analýza paralelních algoritmů VI. Definition Náklady (cost) - C(n, p) - jsou definovány jako C(n, p) = pt P (n, p). Definition Řekneme, že algoritmus je nákladově optimální, pokud je C(n, p) = Θ (T S (n)).
72 Analýza paralelních algoritmů VI. Definition Práce (work) - W (n, p) - je definována jako p 1 W (n, p) = t i, i=0 kde t i je čistý čas výpočtu i-tého procesoru.
73 Amdahlův zákon S(n, p) = T S(n) T P (n, p) = P S (n) + P P (n) P S (n) + P P (n)/p P S (n) + P P (n) P S (n) + P P (n)/p + T O (n, p) Označme f = P S (n)/(p S (n) + P P (n)) čistě sekvenční část algoritmu. Pak je P S (n) + P P (n) = P S(n), f 1/f 1 = P S(n) + P P (n) 1 = P P(n) P S (n) P S (n), (1/f 1)P S (n) = P P (n).
74 Amdahlův zákon Dostáváme S(n, p) P S (n) f P S (n) + ( 1 f 1 ) P S (n) p (1) = 1 f 1 + ( 1 f 1 ) 1 p (2) = 1 f f + 1 f p f = 1 f + 1 f p (3)
75 Amdahlův zákon Theorem Amdahlův zákon: Bud 0 f 1 část výpočtů, které musí být prováděny čistě sekvenčně. Maximální urychlení S(n, p) dosažitelné při použití p procesorů je S(n, p) 1 f + (1 f )/p. Amdahlův zákon je založen na předpokladu, že se snažíme vyřešit problém dané velikosti, jak nejrychleji to jde
76 Amdahlův zákon Z Amdahlova zákona lze snadno získat asymptotický odhad pro urychleni S(n, p) 1 lim S(n, p) lim p p f + (1 f )/p = 1 f. To znamená, že výpočet nemůžeme nikdy urychlit více než 1/f -krát.
77 Amdahlův zákon Příklad: Odhady říkají, že 90% našeho algoritmu lze paralelizovat a zbývajících 10% musí být zpracováno jen na jednom procesoru. Jakého urychlení dosáhneme při použití 8 procesorů? S(n, p) (1 0.1)/8 4.7 To je výrazně méně než požadované urychlení 8. Minimalně ze tří procesorů nemáme žádný užitek.
78 Amdahlův efekt U rozumně navržených paralelních algoritmů platí, že paralelní režie ma asymptoticky nižší složitost než výpočet paralelizovatelné části T O (n, p) = o(p P (n)) navyšování velikosti výpočtu způsobí výraznější růst P P (n) než T O (n, p) při pevném počtu procesorů p je urychlení S(n, p) rostoucí funkcí proměnné n
79 Amdahlův efekt Amdahlův zákon zkoumá možnost maximálního urychlení výpočtu pevně dané úlohy výsledek Amdahlova zákona je dost pesimistický pro paralelizaci pokud čistě sekvenční část algoritmu tvoří 10%, pak nikdy nedosáhnem většího než desetinásobného urychlení paralelizace tedy neumožňuje řešit zadanou úlohu v libovolně krátkém čase ale už z Amdahlova efektu vidíme, že přínos paralelizace je spíše v tom, že dokážeme řešit větší úlohy paralelizace tedy umožňuje provádět přesnější výpočty, kvalitnější vizualizaci apod.
80 Gustavsonův-Barsiho zákon nyní se tedy nebudeme snažit zkracovat čas výpočtu místo toho se pokusíme v daném čase výpočítat co největší úlohu u většiny paralelizovatelných úloh s rostoucí velikostí úlohy roste velikost čistě sekvenční části řádově pomaleji, než celková velikost Víme, že S(n, p) = P S (n) + P P (n) P S (n) + P P (n)/p + T O (n, p). Označme jako s časový podíl, který zabere zpracování čistě sekvenční části při paralelním výpočtu, tj. s = P S (n) P S (n) + P P(n) p + T O (n, p).
81 Gustavsonův-Barsiho zákon Pak dostáváme 1 s = P S (n) = P P (n) = P P (n) p + T O (n, p) P S (n) + P P(n) p + T O (n, p), ( P S (n) + P ) P(n) + T p O (n, p) s, ( P S (n) + P ) P(n) + T p O (n, p) (1 s) p pt O (n, p). A dále S(n, p) = P S (n) + P P (n) P S (n) + P P (n)/p + T O (n, p) = (P S(n) + P P (n)/p + T O (n, p)) (s + (1 s) p) P S (n) + P P (n)/p + T O (n, p) pt O (n, p) P S (n) + P P (n)/p + T O (n, p)
82 Gustavsonův-Barsiho zákon Celkem tedy S(n, p) = s + (1 s)p Předpokládáme-li pak dostáváme pt O (n, p) P S (n) + P P (n)/p + T O (n, p). T O (n, p) = o(p P (n)) a P S (n) = o(p P (n)), S(n, p) = s+(1 s)p O(P P (n) 1 ) = p+(1 p)s O(P P (n) 1 ).
83 Gustavsonův-Barsiho zákon Theorem Gustavsonův-Barsiho zákon: Mějme paralelní program řešící problém velikosti n na p procesorech. Bud s část z celkového času výpočtu potřebná ke zpracování čístě sériové části výpočtu. Předpokládájme T O (n, p) = o(p P (n)) a P S (n) = o(p P (n)), Pro maximální dosažitelné urychlení pak platí S(n, p) = p + (1 p)s O(P P (n) 1 ). Poznámka: Mnoho textů o paralelizaci uvádí jen S(n, p) p + (1 p)s.
84 Gustavsonův-Barsiho zákon Amdahlův zákon vychází ze sekvenčního výpočtu a odvozuje, kolikrát rychlejší může být tento výpočet s využitím paralelizace Gustavsonův-Barsiho zákon vychází z paralelního výpočtu a vyvozuje, kolikrát déle by trval tento výpočet bez paralelizace neber ale v úvahu superlineární urychlení, tedy fakt, že paralelní architektura může mít výhodu ve větším množství rychlejší paměti
85 Gustavsonův-Barsiho zákon Příklad: Výpočet běžící na 64 procesorech trvá 220 sekund. Měření ukazuje, že 5% z celého času výpočtu zabere čistě sekvenční část algoritmu. Jakého urychlení bylo dosaženo? S(n, p) = 64 + (1 64) 0.05 = =
86 Efektivita a škálovatelnost Závislost efektivity na rostoucím počtu procesorů p (plyne z Amdahlova zákona) a velikosti úlohy W (plyne z Gustavsonova-Barsiho zákona) E 1 E p n
87 Škálovatelnost paralelních algoritmů jde o vlastnost paralelního algoritmu využít efektivně velký počet procesorů otázka je, o kolik musíme zvětšit danou úlohu, abychom po přídání určitého počtu procesorů zachovali zvolenou efektivitu čím méně je nutné velikost úlohy zvětšovat, tím lépe velikost úlohy nebudeme poměřovat velikostí vstupních dat n, ale pomocí T S (n)
88 Škálovatelnost paralelních algoritmů Platí a tedy T P (n, p) = T S(n) + T O (n, p), p
89 Škálovatelnost paralelních algoritmů Platí a tedy T P (n, p) = T S(n) + T O (n, p), p S(n, p) = T S(n) T P (n, p) = T S (n)p T S (n) + T O (n, p).
90 Škálovatelnost paralelních algoritmů Platí a tedy Potom S(n, p) = T P (n, p) = T S(n) + T O (n, p), p T S(n) T P (n, p) = T S (n)p T S (n) + T O (n, p). E(n) = S(n, p) p T = S (n) T S (n) + T O (n, p) = T, O(n,p) T S (n)
91 Škálovatelnost paralelních algoritmů Platí a tedy Potom S(n, p) = T P (n, p) = T S(n) + T O (n, p), p T S(n) T P (n, p) = T S (n)p T S (n) + T O (n, p). E(n) = S(n, p) p = T S (n) T S (n) + T O (n, p) = T O(n,p) T S (n), tedy 1 E = 1+T O(n, p) T S (n) 1 E E = T O(n, p) T S (n) T S (n, p) = ET O(n, p) 1 E.
92 Škálovatelnost paralelních algoritmů Definition Funkce izoefektivity udává vztah mezi počtem procesorů p a velikostí úlohy n, kdy má paralelní algoritmus stejnou efektivitu. Theorem Označíme-li K = E 1 E konstantu určující požadovanou efektivitu, pak funkce izoefektivity je dána vztahem T S (n) = KT O (n, p) n = T 1 S (KT O(n, p)). Pozn.: Čím menší tato funkce je, tím lépe.
93 Nákladově optimálního algoritmus Definition Algoritmus je nákladově optimální, práve když platí Platí pt P (n, p) = θ(t S (n)). Tedy T P (n.p) = T S(n) + T O (n, p). p pt P (n, P) = T S (n)+t O (n, p) = θ(t S (n)) T O (n, p) = O(T S (n)).
94 Nákladově optimálního algoritmus Definition Algoritmus je nákladově optimální, práve když platí Platí pt P (n, p) = θ(t S (n)). Tedy T P (n.p) = T S(n) + T O (n, p). p pt P (n, P) = T S (n)+t O (n, p) = θ(t S (n)) T O (n, p) = O(T S (n)). Theorem Algoritmus je nákladově optimální, právě když paralelní režie nepřevyšuje řádově velikost úlohy.
95 Nejkratší a nákladově optimální nejkratší čas Dvě možnosti, jak se může chovat paralelní čas s rostoucím počtem procesorů. TP (n, p) p TP (n, p) p
96 Nejkratší a nákladově optimální nejkratší čas Hledáme minimum funkce paralelního času T P (n, p), tj. d dp T P(n, p) = 0 T min P (n, p ). Problém je, že p může být příliš velké. Chceme najít p tak, aby byl výpočet nákladově optimální.
97 Nejkratší a nákladově optimální nejkratší čas Musí tedy platit (pro pevně dané n) tj. T S ( ) = Ω(T O (, p)), p = O(T 1 O (T S( ))). Pro nákladově optimální algoritmus platí pt P (n, p) = θ(t S (n)) tj., ( ) TS (n) T P (n, p) = θ. p Spolu s p = O(T 1 O (T S(n))) dostáváme spodní odhad pro nákladově optimální nejkratší čas ( ) T opt T P (n, p) = Ω S (n) T 1 O (T. S(n))
98 Modely ideálních paralelních architektur když analyzujeme složitost paralelních architektur, je často potřeba předpokládat určité vlastnosti paralelní architektury, pro kterou je navržený teoreticky se paralelní architektury popisují pomocí PRAM
99 Modely ideálních paralelních architektur PRAM = Parallel Random Access Machine jde o model architektury se sdílenou pamětí stroj má p procesorů a globální pamět neomezené kapacity se stejně rychlým přístupem na jakoukoliv adresu pro všechny procesory modely PRAM se dělí podle ošetření přístupu více procesorů na stejnou adresu
100 Modely ideálních paralelních architektur EREW PRAM = Exclusive Read Exclusive Write PRAM ani čtení aní zápis nelze provádět současně je to nejslabší PRAM CREW PRAM = Concurrent Read Exclusive Write PRAM možné současné čtení více procesorů z jedné adresy to umí dnešní GPU ERCW PRAM = Exclusive Read Concurrent Write PRAM umožňuje současný zápis CRCW PRAM = Concurrent Read Concurrent Write PRAM umožňuje současné čtení i zápis
101 PRAM CW protokoly pro zápis Současný zápis je možné ošetřit násleudjícími protokoly: common (obyčejný) všechny zapisované hodnoty musí být stejné arbitrary (náhodný) náhodně se vybere jeden proces, který zápis provede u ostatních zápis selže priority (prioritní) procesy mají dané priority, podle ktertých se určí, kdo provede zápis sum (součet) zapíše se součet všech hodnot
IB109 Návrh a implementace paralelních systémů. Analytický model paralelních programů. RNDr. Jiří Barnat, Ph.D.
IB109 Návrh a implementace paralelních systémů Analytický model paralelních programů RNDr. Jiří Barnat, Ph.D. Analytický model paralelních programů B109 Návrh a implementace paralelních systémů: Analytický
Optimalizace. Optimalizace. Profilování. Gprof. Gcov. Oprofile. Callgrind. Intel Vtune. AMD CodeAnalyst
Optimalizace Optimalizace Profilování Gprof Gcov Oprofile Callgrind Intel Vtune AMD CodeAnalyst Cvičení Hlavní využití počítačů Vývoj paralelního algoritmu je nutné chápat jako optimalizaci. 1. nejprve
4. Úvod do paralelismu, metody paralelizace
4. Úvod do paralelismu, metody paralelizace algoritmů Ing. Michal Bližňák, Ph.D. Ústav informatiky a umělé inteligence Fakulta aplikované informatiky UTB Zĺın Paralelní procesy a programování, Zĺın, 26.
Paralelní a distribuované výpočty (B4B36PDV)
Paralelní a distribuované výpočty (B4B36PDV) Branislav Bošanský, Michal Jakob bosansky@fel.cvut.cz Artificial Intelligence Center Department of Computer Science Faculty of Electrical Engineering Czech
Paralelní grafové algoritmy
Paralelní grafové algoritmy Značení Minimální kostra grafu Nejkratší cesta z jednoho uzlu Nejkratší cesta mezi všemi dvojicemi uzlů Použité značení Definition Bud G = (V, E) graf. Pro libovolný uzel u
Prohledávání do šířky = algoritmus vlny
Prohledávání do šířky = algoritmus vlny - souběžně zkoušet všechny možné varianty pokračování výpočtu, dokud nenajdeme řešení úlohy průchod stromem všech možných cest výpočtu do šířky, po vrstvách (v každé
OPS Paralelní systémy, seznam pojmů, klasifikace
Moorův zákon (polovina 60. let) : Výpočetní výkon a počet tranzistorů na jeden CPU chip integrovaného obvodu mikroprocesoru se každý jeden až dva roky zdvojnásobí; cena se zmenší na polovinu. Paralelismus
Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
Dynamické programování Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Rozděl a panuj (divide-and-conquer) Rozděl (Divide): Rozděl problém na několik podproblémů tak, aby tyto podproblémy odpovídaly původnímu
Návrh Designu: Radek Mařík
1. 7. Najděte nejdelší rostoucí podposloupnost dané posloupnosti. Použijte metodu dynamického programování, napište tabulku průběžných délek částečných výsledků a tabulku předchůdců. a) 5 8 11 13 9 4 1
Dynamické programování
Dynamické programování prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA)
Martin Lísal. Úvod do MPI
Martin Lísal září 2003 PARALELNÍ POČÍTÁNÍ Úvod do MPI 1 1 Co je to paralelní počítání? Paralelní počítání je počítání na paralelních počítačích či jinak řečeno využití více než jednoho procesoru při výpočtu
PARALELNÍ PROCESY A PROGRAMOVÁNÍ
PARALELNÍ PROCESY A PROGRAMOVÁNÍ 8 Paralelní výpočetní modely Ing. Michal Bližňák, Ph.D. Zlín 2013 Tento studijní materiál vznikl za finanční podpory Evropského sociálního fondu (ESF) a rozpočtu české
ALGORITMY A DATOVÉ STRUKTURY
Název tématického celku: Cíl: ALGORITMY A DATOVÉ STRUKTURY Metodický list č. 1 Časová složitost algoritmů Základním cílem tohoto tematického celku je vysvětlení potřebných pojmů a definic nutných k popisu
Přehled paralelních architektur. Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur
Přehled paralelních architektur Přehled paralelních architektur Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur Přehled I. paralelní počítače se konstruují
Static Load Balancing Applied to Time Dependent Mechanical Problems
Static Load Balancing Applied to Time Dependent Mechanical Problems O. Medek 1, J. Kruis 2, Z. Bittnar 2, P. Tvrdík 1 1 Katedra počítačů České vysoké učení technické, Praha 2 Katedra stavební mechaniky
U Úvod do modelování a simulace systémů
U Úvod do modelování a simulace systémů Vyšetřování rozsáhlých soustav mnohdy nelze provádět analytickým výpočtem.často je nutné zkoumat chování zařízení v mezních situacích, do kterých se skutečné zařízení
Paralení programování pro vícejádrové stroje s použitím OpenMP. B4B36PDV Paralelní a distribuované výpočty
Paralení programování pro vícejádrové stroje s použitím OpenMP B4B36PDV Paralelní a distribuované výpočty Minulé cvičení: Vlákna a jejich synchronizace v C++ 11... 1 Minulé cvičení: Vlákna a jejich synchronizace
Algoritmus pro hledání nejkratší cesty orientovaným grafem
1.1 Úvod Algoritmus pro hledání nejkratší cesty orientovaným grafem Naprogramoval jsem v Matlabu funkci, která dokáže určit nejkratší cestu v orientovaném grafu mezi libovolnými dvěma vrcholy. Nastudoval
Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21
Stručný obsah 1. Hardware, procesory a vlákna... 19 2. Programování s ohledemna výkon... 45 3. Identifikování příležitostí pro paralelizmus... 93 4. Synchronizace a sdílení dat... 123 5. Vlákna v rozhraní
Tento dokument obsahuje zadání pro semestrální programy z PAA. Vypracování. vypracovanou úlohu podle níže uvedených zadání. To mimo jiné znamená, že
Kapitola Zadání Tento dokument obsahuje zadání pro semestrální programy z PAA. Vypracování alespoň jedné úlohy je nutnou podmínkou pro úspěšné složení zkoušky resp. získaní (klasifikovaného) zápočtu (viz.
Dynamické programování
ALG 0 Dynamické programování zkratka: DP Zdroje, přehledy, ukázky viz https://cw.fel.cvut.cz/wiki/courses/a4balg/literatura_odkazy 0 Dynamické programování Charakteristika Neřeší jeden konkrétní typ úlohy,
Základní komunikační operace
Základní komunikační operace Úvod Operace send a recieve Blokující a neblokující posílání zpráv Blokující posílání zpráv Neblokující posílání zpráv One-to-all broadcast/all-to-one reduction All-to-all
Binární soubory (datové, typované)
Binární soubory (datové, typované) - na rozdíl od textových souborů data uložena binárně (ve vnitřním tvaru jako v proměnných programu) není čitelné pro člověka - všechny záznamy téhož typu (může být i
Algoritmy I, složitost
A0B36PRI - PROGRAMOVÁNÍ Algoritmy I, složitost České vysoké učení technické Fakulta elektrotechnická v 1.01 Rychlost... Jeden algoritmus (program, postup, metoda ) je rychlejší než druhý. Co ta věta znamená??
Disková pole (RAID) 1
Disková pole (RAID) 1 Architektury RAID Důvod zavedení RAID: reakce na zvyšující se rychlost procesoru. Pozice diskové paměti v klasickém personálním počítači vyhovuje pro aplikace s jedním uživatelem.
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
1 / 23 Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 2 / 23 biologové často potřebují najít často se opakující sekvence DNA tyto sekvence bývají relativně krátké,
Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D.
Algoritmizace diskrétních simulačních modelů Ing. Michal Dorda, Ph.D. 1 Úvodní poznámky Při programování simulačních modelů lze hlavní dílčí problémy shrnout do následujících bodů: 1) Zachycení statických
Grafové algoritmy. Programovací techniky
Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být
Grafové algoritmy. Programovací techniky
Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být
Zdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2.
1 3 4 5 6 7 8 9 10 11 1 13 14 15 16 17 18 19 0 1 3 4 5 6 7 8 9 30 31 3 Zdůvodněte, proč funkce f(n) = n log(n) 1 n 1/ roste rychleji než funkce g(n) = n. Zdůvodněte, proč funkce f(n) = n 3/ log(n) roste
Systém adresace paměti
Systém adresace paměti Základní pojmy Adresa fyzická - adresa, která je přenesena na adresní sběrnici a fyzicky adresuje hlavní paměť logická - adresa, kterou má k dispozici proces k adresaci přiděleného
Modely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT
PEF ČZU Modely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT Okruhy SZB č. 5 Zdroje: Demel, J., Operační výzkum Jablonský J., Operační výzkum Šubrt, T., Langrová, P., Projektové řízení I. a různá internetová
Objektově orientovaná implementace škálovatelných algoritmů pro řešení kontaktních úloh
Objektově orientovaná implementace škálovatelných algoritmů pro řešení kontaktních úloh Václav Hapla Katedra aplikované matematiky Fakulta elektrotechniky a informatiky VŠB-Technická univerzita Ostrava
TGH05 - aplikace DFS, průchod do šířky
TGH05 - aplikace DFS, průchod do šířky Jan Březina Technical University of Liberec 31. března 2015 Grafová formulace CPM (critical path method) Orientovaný acyklický graf (DAG) je orientovaný graf neobsahující
Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest
Obsah prezentace Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest 1 Základní pojmy Vrchol grafu: {množina V} Je to styčná vazba v grafu, nazývá se též uzlem, prvkem
VÝBĚR A JEHO REPREZENTATIVNOST
VÝBĚR A JEHO REPREZENTATIVNOST Induktivní, analytická statistika se snaží odhadnout charakteristiky populace pomocí malého vzorku, který se nazývá VÝBĚR neboli VÝBĚROVÝ SOUBOR. REPREZENTATIVNOST VÝBĚRU:
NPRG030 Programování I, 2018/19 1 / :03:07
NPRG030 Programování I, 2018/19 1 / 20 3. 12. 2018 09:03:07 Vnitřní třídění Zadání: Uspořádejte pole délky N podle hodnot prvků Měřítko efektivity: * počet porovnání * počet přesunů NPRG030 Programování
Základy umělé inteligence
Základy umělé inteligence Automatické řešení úloh Základy umělé inteligence - prohledávání. Vlasta Radová, ZČU, katedra kybernetiky 1 Formalizace úlohy UI chápe řešení úloh jako proces hledání řešení v
Princip funkce počítače
Princip funkce počítače Princip funkce počítače prvotní úlohou počítačů bylo zrychlit provádění matematických výpočtů první počítače kopírovaly obvyklý postup manuálního provádění výpočtů pokyny pro zpracování
bfs, dfs, fronta, zásobník, prioritní fronta, halda
bfs, dfs, fronta, zásobník, prioritní fronta, halda Petr Ryšavý 20. září 2016 Katedra počítačů, FEL, ČVUT prohledávání grafů Proč prohledávání grafů Zkontrolovat, zda je sít spojitá. Hledání nejkratší
TGH05 - aplikace DFS, průchod do šířky
TGH05 - aplikace DFS, průchod do šířky Jan Březina Technical University of Liberec 28. března 2017 Grafová formulace CPM (critical path method) Orientovaný acyklický graf (DAG) je orientovaný graf neobsahující
12. Globální metody MI-PAA
Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI
Třídy složitosti P a NP, NP-úplnost
Třídy složitosti P a NP, NP-úplnost Cíle přednášky: 1. Definovat, za jakých okolností můžeme problém považovat za efektivně algoritmicky řešitelný. 2. Charakterizovat určitou skupinu úloh, pro které není
Paralelní algoritmy v lineární algebře. Násobení matic
Paralelní algoritmy v lineární algebře Násobení matic Násobení matic mějme matice A, B, C R n,n počítáme součin C = AB mějme p procesu a necht p je mocnina dvou matice rozdělíme blokově na p p bloků pak
cv3.tex. Vzorec pro úplnou pravděpodobnost
3 cvičení - pravděpodobnost 2102018 18cv3tex n i=1 Vzorec pro úplnou pravděpodobnost Systém náhodných jevů nazýváme úplným, jestliže pro něj platí: B i = 1 a pro i k je B i B k = 0 Jestliže je (Ω, A, P
Stromy, haldy, prioritní fronty
Stromy, haldy, prioritní fronty prof. Ing. Pavel Tvrdík CSc. Katedra počítačů FEL České vysoké učení technické DSA, ZS 2008/9, Přednáška 6 http://service.felk.cvut.cz/courses/x36dsa/ prof. Pavel Tvrdík
Disková pole (RAID) 1
Disková pole (RAID) 1 Architektury RAID Základní myšlenka: snaha o zpracování dat paralelně. Pozice diskové paměti v klasickém personálním počítači vyhovuje pro aplikace s jedním uživatelem. Řešení: data
Zpráva o průběhu přijímacího řízení na vysokých školách dle Vyhlášky MŠMT č. 343/2002 a její změně 276/2004 Sb.
Zpráva o průběhu přijímacího řízení na vysokých školách dle Vyhlášky MŠMT č. 343/2002 a její změně 276/2004 Sb. 1. Informace o přijímacích zkouškách Studijní program: Informatika navazující magisterský
bfs, dfs, fronta, zásobník, prioritní fronta, halda
bfs, dfs, fronta, zásobník, prioritní fronta, halda Petr Ryšavý 19. září 2017 Katedra počítačů, FEL, ČVUT prohledávání grafů Proč prohledávání grafů Zkontrolovat, zda je sít spojitá. Hledání nejkratší
Operační výzkum. Síťová analýza. Metoda CPM.
Operační výzkum Síťová analýza. Metoda CPM. Operační program Vzdělávání pro konkurenceschopnost Název projektu: Inovace magisterského studijního programu Fakulty ekonomiky a managementu Registrační číslo
Paralelní programování
Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 11 Literatura Ben-Ari M.: Principles of concurrent and distributed programming.
Digitální učební materiál
Digitální učební materiál Číslo projektu: CZ.1.07/1.5.00/34.0548 Název školy: Gymnázium, Trutnov, Jiráskovo náměstí 325 Název materiálu: VY_32_INOVACE_146_IVT Autor: Ing. Pavel Bezděk Tematický okruh:
Operační systémy. Správa paměti (SP) Požadavky na SP. Spojování a zavedení programu. Spojování programu (linking) Zavádění programu (loading)
Správa paměti (SP) Operační systémy Přednáška 7: Správa paměti I Memory Management Unit (MMU) hardware umístěný na CPU čipu např. překládá logické adresy na fyzické adresy, Memory Manager software, který
Definice 7.2. Nejmenší přirozené číslo k, pro které je graf G k-obarvitelný, se nazývá chromatické číslo (barevnost) grafu G a značí se χ(g).
7 Barevnost grafu Definice 71 Graf G se nazývá k-obarvitelný, jestliže každému jeho uzlu lze přiřadit jednu z barev 1 k tak, že žádné dva sousední uzly nemají stejnou barvu Definice 72 Nejmenší přirozené
PQ-stromy a rozpoznávání intervalových grafů v lineárním čase
-stromy a rozpoznávání intervalových grafů v lineárním čase ermutace s předepsanými intervaly Označme [n] množinu {1, 2,..., n}. Mějme permutaci π = π 1, π 2,..., π n množiny [n]. Řekneme, že množina S
Operace ALU. INP 2008 FIT VUT v Brně
Operace ALU INP 2008 FIT VUT v Brně 1 Princip ALU (FX) Požadavky: Logické operace Sčítání (v doplňkovém kódu) Posuvy/rotace Násobení ělení B A not AN OR XOR + Y 1) Implementace logických operací je zřejmá
Kombinatorická minimalizace
Kombinatorická minimalizace Cílem je nalézt globální minimum ve velké diskrétní množině, kde může být mnoho lokálních minim. Úloha obchodního cestujícího Cílem je najít nejkratší cestu, která spojuje všechny
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
1 / 40 regula Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague regula 1 2 3 4 5 regula 6 7 8 2 / 40 2 / 40 regula Iterační pro nelineární e Bud f reálná funkce
Úvod do informatiky. Miroslav Kolařík
Úvod do informatiky přednáška devátá Miroslav Kolařík Zpracováno dle učebního textu prof. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008 Obsah 1 Kombinatorika: princip inkluze a exkluze 2 Počítání
20ZEKT: přednáška č. 3
0ZEKT: přednáška č. 3 Stacionární ustálený stav Sériové a paralelní řazení odporů Metoda postupného zjednodušování Dělič napětí Dělič proudu Metoda superpozice Transfigurace trojúhelník/hvězda Metoda uzlových
Úvod do teorie grafů
Úvod do teorie grafů Neorientovaný graf G = (V,E,I) V množina uzlů (vrcholů) - vertices E množina hran - edges I incidence incidence je zobrazení, buď: funkce: I: E V x V relace: I E V V incidence přiřadí
SOUSTAVY LINEÁRNÍCH ALGEBRAICKÝCH ROVNIC
SOUSTAVY LINEÁRNÍCH ALGEBRAICKÝCH ROVNIC Pojm: Algebraická rovnice... rovnice obsahující pouze celé nezáporné mocnin neznámé, tj. a n n + a n 1 n 1 +... + a 2 2 + a 1 + a 0 = 0, kde n je přirozené číslo.
Složitost Filip Hlásek
Složitost Filip Hlásek Abstrakt. Příspěvek popisuje dva základní koncepty teoretické informatiky, Turingovy stroje a složitost. Kromě definic důležitých pojmů uvádí také několik souvisejících tvrzení,
Kapitola 13: Transakce. Koncept transakce. ACID vlastnosti
- 13.1 - Kapitola 13: Transakce Koncept transakce Stavy transakce Implementace atomičnosti a trvanlivosti Souběžné spouštění Serializovatelnost Koncept transakce Transakce je posloupnost operací (část
Složitosti základních operací B + stromu
Složitosti základních operací B + stromu Radim Bača VŠB Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky ŠKOMAM 2010-1- 28/1/2010 Složitosti základních operací B +
12. Lineární programování
. Lineární programování. Lineární programování Úloha lineárního programování (lineární optimalizace) je jedním ze základních problémů teorie optimalizace. Našim cílem je nalézt maximum (resp. minimum)
Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky
Analýza Petriho sítí. Analýza Petriho sítí p.1/28
Analýza Petriho sítí Analýza Petriho sítí p.1/28 1. Základní pojmy Základní problémy analýzy bezpečnost (safeness) omezenost (boundness) konzervativnost (conservation) živost (liveness) Definice 1: Místo
bin arn ı vyhled av an ı a bst Karel Hor ak, Petr Ryˇsav y 23. bˇrezna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT
binární vyhledávání a bst Karel Horák, Petr Ryšavý 23. března 2016 Katedra počítačů, FEL, ČVUT Příklad 1 Naimplementujte binární vyhledávání. Upravte metodu BinarySearch::binarySearch. 1 Příklad 2 Mysĺım
Binární vyhledávací stromy pokročilé partie
Binární vyhledávací stromy pokročilé partie KMI/ALS lekce Jan Konečný 30.9.204 Literatura Cormen Thomas H., Introduction to Algorithms, 2nd edition MIT Press, 200. ISBN 0-262-5396-8 6, 3, A Knuth Donald
1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) 759 10 b) 2578 10
Úlohy- 2.cvičení 1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) 759 10 b) 2578 10 2. Převeďte dané desetinné číslo do dvojkové soustavy (DEC -> BIN): a) 0,8125 10 b) 0,35 10
Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.
Kapitola Reprezentace grafu V kapitole?? jsme se dozvěděli, co to jsou grafy a k čemu jsou dobré. rzo budeme chtít napsat nějaký program, který s grafy pracuje. le jak si takový graf uložit do počítače?
8. RSA, kryptografie s veřejným klíčem. doc. Ing. Róbert Lórencz, CSc.
Bezpečnost 8. RSA, kryptografie s veřejným klíčem doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Příprava studijních programů
Operační systémy. Přednáška 7: Správa paměti I
Operační systémy Přednáška 7: Správa paměti I 1 Správa paměti (SP) Memory Management Unit (MMU) hardware umístěný na CPU čipu např. překládá logické adresy na fyzické adresy, Memory Manager software, který
PARALELNÍ PROCESY A PROGRAMOVÁNÍ
PARALELNÍ PROCESY A PROGRAMOVÁNÍ 12 Paralelní algoritmy - paralelní prefixové součty Ing Michal Bližňák, PhD Zlín 2013 Tento studijní materiál vznikl za finanční podpory Evropského sociálního fondu (ESF)
Paralelní algoritmy --- Parallel Algorithms
Paralelní algoritmy --- Parallel Algorithms Přemysl Šůcha suchap@fel.cvut.cz Motivace Nepopíratelnost trendu směřování k paralelním systémům i více-jádrový telefon je dnes samozřejmostí energetická efektivita
Náplň. v.0.03 16.02.2014. - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění
Náplň v.0.03 16.02.2014 - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění Spojení dvou samostatně setříděných polí void Spoj(double apole1[], int adelka1, double
VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY
VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY Jan Krejčí 31. srpna 2006 jkrejci@physics.ujep.cz http://physics.ujep.cz/~jkrejci Obsah 1 Přímé metody řešení soustav lineárních rovnic 3 1.1 Gaussova eliminace...............................
1 Nejkratší cesta grafem
Bakalářské zkoušky (příklady otázek) podzim 2014 1 Nejkratší cesta grafem 1. Uvažujte graf s kladným ohodnocením hran (délka). Definujte formálně problém hledání nejkratší cesty mezi dvěma uzly tohoto
Časová složitost / Time complexity
Časová složitost / Time complexity Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2018 1 / 24 Složitost algoritmů Algorithm complexity Časová a paměťová složitost Trvání výpočtu v závislosti
Cílem seminární práce je aplikace teoretických znalostí z přednášky na konkrétní úlohy. Podstatu algoritmu totiž
Zadání příkladů pro semestrální práci 9 Cílem seminární práce je aplikace teoretických znalostí z přednášky na konkrétní úlohy. Podstatu algoritmu totiž člověk nejlépe pochopí až pokud jej sám implementuje,
Maturitní otázky z předmětu PROGRAMOVÁNÍ
Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti
Úloha ve stavovém prostoru SP je <s 0, C>, kde s 0 je počáteční stav C je množina požadovaných cílových stavů
Stavový prostor a jeho prohledávání SP = formalismus k obecnějšímu uchopení a vymezení problému, který spočívá v nalezení posloupnosti akcí vedoucích od počátečního stavu úlohy (zadání) k požadovanému
Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2017
Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 207 Zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia
Aproximace funkcí. Numerické metody 6. května FJFI ČVUT v Praze
Aproximace funkcí Numerické metody 6. května 2018 FJFI ČVUT v Praze 1 Úvod Dělení Interpolace 1D Více dimenzí Minimalizace Důvody 1 Dělení Dělení - Získané data zadané data 2 Dělení - Získané data Obecně
Základy algoritmizace
Základy algoritmizace Matematické algoritmy (11MAG) Jan Přikryl 1. přednáška 11MAG pondělí 5. října 2014 verze: 2014-11-10 10:35 Obsah 1 Algoritmy a algoritmizace 1 1.1 Vlastnosti algoritmů..................................
Datové struktury 2: Rozptylovací tabulky
Datové struktury 2: Rozptylovací tabulky prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy
Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2016
Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 206 Zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia
Hledání extrémů funkcí
Hledání extrémů funkcí Budeme se zabývat téměř výhradně hledáním minima. Přes nost nalezeného extrému Obecně není hledání extrému tak přesné jako řešení rovnic. Demonstrovat to můžeme na příkladu hledání
a vlastních vektorů Příklad: Stanovte taková čísla λ, pro která má homogenní soustava Av = λv nenulové (A λ i I) v = 0.
Výpočet vlastních čísel a vlastních vektorů S pojmem vlastního čísla jsme se již setkali například u iteračních metod pro řešení soustavy lineárních algebraických rovnic. Velikosti vlastních čísel iterační
Základy algoritmizace, návrh algoritmu
Základy algoritmizace, návrh algoritmu Algoritmus Předpoklady automatického výpočtu: předem stanovit (rozmyslet) přesný postup během opakovaného provádění postupu již nepřemýšlet a postupovat mechanicky
Složitost algoritmů. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava
Složitost algoritmů doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 27. prosince 2015 Jiří Dvorský (VŠB TUO) Složitost algoritmů
10. Složitost a výkon
Jiří Vokřínek, 2016 B6B36ZAL - Přednáška 10 1 Základy algoritmizace 10. Složitost a výkon doc. Ing. Jiří Vokřínek, Ph.D. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Jiří
Paralelní programování
Paralelní programování přednáška 5 Michal Krupka 15. března 2011 Michal Krupka (KI UP) Paralelní programování 15. března 2011 1 / 13 Ještě ke kritickým sekcím Použití v praxi obvykle pomocí zámků (locks)
Informační systémy plánování výroby - pokročilé rozvrhování
Tento materiál vznikl jako součást projektu EduCom, který je spolufinancován Evropským sociálním fondem a státním rozpočtem ČR. Informační systémy plánování výroby - pokročilé rozvrhování Technická univerzita
Aplikace. vliv na to, jakou mají strukturu i na to, jak pracné je je vyvinout. Bylo vypozorováno, že aplikace je možné rozdělit do skupin
Aplikace Aplikace se liší tím, k jakému účelu jsou tvořeny. To má vliv na to, jakou mají strukturu i na to, jak pracné je je vyvinout. Bylo vypozorováno, že aplikace je možné rozdělit do skupin s podobnou
Asymptotická složitost algoritmů
Semestrální projekt 1 Y14TED Asymptotická složitost algoritmů Autor: Antonín DANĚK Osnova Slide 2 Co je to složitost algoritmu? Jak se počítá složitost algoritmu? Smysl přesného výpočtu složitosti algoritmu
Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce)
13. Metody vyhledávání. Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce). Asociativní vyhledávání (sekvenční, binárním půlením, interpolační, binární vyhledávací
Úvod do modelování a simulace. Ing. Michal Dorda, Ph.D.
Úvod do modelování a simulace systémů Ing. Michal Dorda, Ph.D. 1 Základní pojmy Systém systémem rozumíme množinu prvků (příznaků) a vazeb (relací) mezi nimi, která jako celek má určité vlastnosti. Množinu
TECHNOLOGIE DOPRAVY A LOGISTIKA
TECHNOLOGIE DOPRAVY A LOGISTIKA CVIČENÍ 5 - ŘEŠENÍ ÚLOH Letecká doprava Rozdělení vzdušného prostoru (řízený a neřízený prostor, 7 zón) Letové trasy, bezpečné oddělení sloty (1000/2000 stop - 300/600 m)