PARALELNÍ PROCESY A PROGRAMOVÁNÍ

Rozměr: px
Začít zobrazení ze stránky:

Download "PARALELNÍ PROCESY A PROGRAMOVÁNÍ"

Transkript

1 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é republiky v rámci řešení projektu: CZ 1.07/2.2.00/ , MOD- ERNIZACE VÝUKOVÝCH MATERIÁLŮ A DIDAKTICKÝCH METOD

2 OBSAH 1 Obsah 1 Parallel Random Access Machine (PRAM) model Vlastnosti PRAM modelu Omezení PRAM modelu Souběžný přístup do sdílené paměti Výpočetní síla PRAM podmodelů Cena, optimalita a efektivnost PRAM algoritmů Simulace velkého PRAM na malém PRAM 6 3 Simulace silnějšího PRAM na slabším PRAM 7 4 Asynchronní PRAM (APRAM) model APRAM výpočet Výkonostní parametry modelu APRAM Kontrolní otázky 11

3 OBSAH 2 STRUČNÝ OBSAH PŘEDNÁŠKY Parallel Random Access Machine (PRAM) model Simulace velkého PRAM na malém PRAM Simulace silnějšího PRAM na slabším PRAM Asynchronní PRAM (APRAM) model MOTIVACE Paralelní výpočetní modely slouží jako teoretické rámce stanovující podmínky pro výpočet časové složitosti paralelních algoritmů, kterou kromě počtu procesorů a povahy algoritmu ovlivňuje také použitá pamět ová architektura a způsob přístupu do sdílených pamět ových oblastí. Tato kapitola pojednává o modelu PRAM a jeho vlastnostech a derivátech. CÍL Obeznámit se s výpočetním modelem PRAM a jeho základními vlastnosti. Pochopit, jak jednotlivé podmodely PRAM ovlivňují časovou a prostorovou složitost paralelního algoritmu.

4 Parallel Random Access Machine (PRAM) model 3 1 Parallel Random Access Machine (PRAM) model PRAM model je jednoduchý model SIMD SMP systému. Vychází z klasického RAM (Random Access Machine) modelu, který je definován těmito vlastnostmi [1]: Základem RAM je výpočetní jednotka s uživatelsky definovaným programem. Pro čtení vstupních dat používá vstupní pásku a pro zápis výstupních dat výstupní pásku. Počet lokálních pamět ových buněk je neomezený. Pamět ové buňky jsou schopny obsahovat čísla neomezené velikosti. Systém podporuje instrukce pro aritmetické, logické a I/O operace a větvení toku programu. Výpočet začne první instrukcí a skončí po provedení instrukce HALT. Všechny instrukce trvají jednotkový čas bez ohledu na délku operandů. Časová složitost je definována jako počet provedených instrukcí. Pamět ová složitost je definována jako počet použitých pamět ových buněk. PRAM model je zobecněním RAM modelu; místo jednoho procesoru bude použito více procesorů připojených ke společné paměti. Tyto procesory budou pracovat synchronně jako u SIMD počítače. Další vlastnosti specifické pro PRAM model jsou: PRAM obsahuje neomezený počet procesorů P 1, P 2,..., P p. Pamět je tvořena neomezeným počtem sdílených pamět ových buněk M[1], M[2],..., M[n]. Každý P i má vlastní neomezenou lokální pamět a zná svůj index i. Každý procesor může přistupovat to kterékoliv sdílené pamět ové buňky v jednotkovém čase. Vstup a výstup PRAM algoritmu se skládá z n/n položek uložených ve sdílené paměti. PRAM instrukce tvoří vždy 3-fázové cykly: 1. Čti data ze sdílené paměti do svého registru 2. Proved lokální výpočet 3. Zapiš data ze svého registru do sdílené paměti Procesory provádějí tyto PRAM instrukce synchronně. Konflikty souběžného čtení či zápisu do sdílené paměti je zapotřebí explicitně ošetřit. Procesory mohou komunikovat pouze čtením/zápisem do sdílené paměti. P 1 má speciální aktivační registr obsahující nejvyšší index aktivního procesoru: 1. Na počátku je aktivní pouze P 1 2. P 1 spočítá počet požadovaných aktivních procesorů a nastaví aktivační registr 3. Poté začnou provádět své programy ostatní aktivní procesory Výpočet běží až do doby, kdy se P 1 zastaví (v té době již budou všechny ostatní procesory neaktivní) Paralelní časová složitost je rovna času výpočtu P 1. Prostorová složitost je rovna počtu použitých pamět ových buněk.

5 Parallel Random Access Machine (PRAM) model Vlastnosti PRAM modelu Ačkoliv PRAM model ignoruje určitá omezení a detaily nižších vrstev paralelního systému, je pro tvůrce paralelních algoritmů důležitý, protože: je přirozený, nebot počet operací provedených v jednom cyklu na p procesorech je nejvýše p. je výpočetně silný, nebot jakýkoliv procesor může číst či zapisovat do sdílené pamět ové buňky v jednotkovém čase. je jednoduchý, nebot zanedbává komunikační a synchronizační režie. může sloužit jako zkušební model - neexistuje-li pro daný problém rozumný/efektivní PRAM model, nemá smysl se snažit vymýšlet rozumný/efektivní řešení na reálném paralelním systému. je užitečný, nebot je idealizací existujících paralelních počítačů se sdílenou pamětí (SMP). 1.2 Omezení PRAM modelu Prakticky použitelné PRAM algoritmy musí počítat s omezeními, kterými je nutné korigovat některé velkorysé předpoklady základního PRAM modelu a to zejména: Omezení velikosti slova: velikost slova procesorů nebo pamět ová buňky je omezena. Malé PRAM: počet procesorů je v reálném světe omezen. Pokud je počet procesorů PRAM modelu vyšší, fyzické procesory se musí mezi nimi přepínat v režimu sdílení času. PRAM s malou pamětí: počet buněk sdílené paměti je omezen. Konflikty přístupu do paměti: pro současný přístup z více procesorů do jedné sdílené pamět ové buňky jsou definovány jasné omezující podmínky, kterým se budeme věnovat v následující kapitole Souběžný přístup do sdílené paměti Z hlediska nutnosti ošetření souběžného přístupu ke sdíleným pamět ovým buňkám bylo definováno několik podmodelů stanovujících podmínky omezující souběžné přístupy k jedné pamět ové buňce. Jedná se o podmodely Exclusice Read Exclusive Write (EREW) PRAM - Žádným dvěma procesorům není povoleno číst ani zapisovat do téže pamět ové buňky současně. Concurent Read Exclusive Write (CREW) PRAM - Současné čtení téže pamět ové buňky je povole, zapisovat však může v daný okamžik pouze jeden procesor. Exclusive Read Concurent Write (ERCW) PRAM - Číst sdílenou pamět ovou buňku může v daný omakžik pouze jeden procesor, současné zápisy do sdílené paměti je povoleno víc procesorům. Concurent Read Concurent Write (CRCW) PRAM - Jsou povolena jak současná čtení, tak i zápisy do sdílené pamět ová buňky. Je zřejmé že případy souběžného zápisu (Concurent Write) je nutné dále upřesnit pomocí rozšiřujících podmodelů:

6 Parallel Random Access Machine (PRAM) model 5 Prioritní (Priority) CRCW - Procesorům jsou přiděleny pevné priority a fyzický zápis je povolen pouze procesoru s nejvyšší prioritou ve skupině žadatelů. Náhodný (Arbitrary) CRCW - Ukončit zápis je povoleno náhodně vybranému procesoru. Shodný (Common) CRCW - Existuje-li více žádostí o zápis do dané pamět ové buňky, musí být zapisovaná hodnota ve všech žádostech shodná. Výše uvedené podmodely ovlivňují také celkový paralelní čas algoritmu. Uved me si jednoduchý příklad. Příklad Uvažujme p procesorový PRAM kde p < n a pole n nesetříděných hodnot uložených ve sdílené paměti obsahující n různých položek. Procesor P 1 vlastní hodnotu x. Úkolem je oznámit procesoru P 1, zda se hodnota x nalézá ve vstupním poli. 1. EREW PRAM algoritmus: (a) Procesor P 1 rozešle procesorům P 2,..., P p hodnotu x v log p krocích pomocí binární distribuce kopií. (b) Každý procesor provede lokální hledání v n/p položkách v n/p krocích. (c) Každý procesor nastaví příznak Nalezeno a všechny procesory povedou paralelní redukci hodnot těchto příznaků pomocí binárního redukčního stromu v čase O(log p). Celkový paralelní čas je tedy T (n, p) = O(log p + n/p). 2. CREW PRAM algoritmus: Řešení je podobné jako u EREW podmodelu pouze s tím rozdílem, že procesory P 2,..., P n si mohou načíst hledanou hodnotu souběžně ze sdílené pamět ové buňky v čase O(1). Paralelní čás závěrečné redukce však zůstává stejný a pro se nemění ani asymptotické vyjádření celkového paralelního času, které je tedy stejně jako minule T (n, p) = O(log p+n/p). 3. Shodný CRCW PRAM algoritmus: V této modifikaci trvá také závěrečný krok algoritmu konstantní čas O(1) nebot ty procesory, které nastavily příznak Nalezeno na hodnotu 1, mohou provést zápis do sdílené výsledkové pamět ové buňky procesoru P 1 současně v jednom kroku. Celkový paralelní čas poté bude T (n, p) = O(n/p), čímž jsme se dostali k optimálnímu řešení. 1.3 Výpočetní síla PRAM podmodelů Jak bylo patrné z příkladu v kapitole 1.2.1, omezení uvalená na jednotlivé podmodely PRAM ovlivňují také časovou složitost algoritmů a proto můžeme hovořit o výpočetní síle jednotlivých PRAM podmodelů. Definice 1 PRAM podmodel A je výpočetně silnější než podmodel B, psáno A B, jestliže jakýkoliv algoritmus napsaný pro PRAM počítač B poběží na stejně velkém PRAM počítači A beze změny a s tímtéž paralelním časem. Lemma 1 Prioritní CRCW Náhodný CRCW Shodný CRCW CREW EREW

7 Simulace velkého PRAM na malém PRAM Cena, optimalita a efektivnost PRAM algoritmů Definice 2 Necht K je problém s množinou vstupních dat o velikosti n. Předpokládejme, že K lze řešit na p-procesorovém PRAM počítači algoritmem A v čase T (n, p). Pak řekneme, že 1. A je efektivní, jestliže T (n, p) = O(log O(1) n) a C(n, p) = O(SU(n) log O(1) n) 2. A je cenově optimální, jestliže T (n, p) = O(log O(1) n) a C(n, p) = O(SU(n)) 3. A je plně paralelní, jestliže T (n, p) = O(1) a p = O(SU(n)) Plně paralelní algoritmy jsou tedy cenově optimální. 2 Simulace velkého PRAM na malém PRAM Model PRAM neomezuje návrháře paralelních algoritmů ani z hlediska počtu procesorů ani z hlediska počtu sdílených pamět ových buněk. Situace se však může radikálně změnit při implementaci takového PRAM algoritmu na reálném PRAM počítači (SMP), který nedisponuje potřebným počtem procesorů nebo buněk sdílené paměti. V takovém případě je potřeba přistoupit k simulaci velkého PRAM počítače na malém. Věta 1 Předpokládejme, že p < p. Uvažujme algoritmus A, který běží na p-procesorovém PRAM v t krocích. Pak lze A simulovat na p -procesorovém PRAM v t = O(t p/p ) krocích za předpokladu, že velikost sdílené paměti je stejná. Důkaz. 1. Rozdělme p simulovaných procesorů do p skupin o velikosti p/p. 2. Přiřad me každému z p simulujících procesorů jednu skupinu. 3. Každý simulující procesor simuluje jeden krok své skupiny procesorů: (a) provedením nejdříve všech jejích operací READ a lokálních výpočtů, (b) provedením jejich operací WRITE poté. Důležitým důsledkem je, že Každý PRAM algoritmus s cenou C(n, p) lze provést sekvenčně v čase T (n, 1) = C(n, p). Pokud jsme navrhli PRAM algoritmus s cenou C(n, p) = o(su(n)), pak jsme automaticky navrhli nový nejlepší sekvenční algoritmus. V případě, že omezení reálného PRAM počítače spočívá v nedostatečném velikosti sdílené paměti, je možné chybějící pamět ové buňky simulovat v lokální paměti procesorů. Simulující procesory tak budou simulovat jak procesory původní, tak také chybějící velkou sdílenou pamět pomocí svých malých lokálních pamětí. Věta 2 Předpokládejme, že m < m a uvažujme algoritmus A, který běží na p-procesorovém PRAM s m pamět ovými buňkami v t krocích. Pak lze A simulovat na p = max(p, m )-procesorovém PRAM s m pamět ovými buňkami v t = O(t m/m ) krocích.

8 Simulace silnějšího PRAM na slabším PRAM 7 Důkaz. Pamět ové buňky simulovaného a simulujícího počítače budeme označovat M[1,..., m] a M [1,..., m ]. 1. Rozdělme m simulovaných sdílených pamět ových buněk do m souvisejících úseků S i o velikosti m/m. 2. Každý simulující procesor P i, 1 i p, bude simulovat P i původního PRAM. 3. Každý simulující procesor P i, 1 i m, uloží počáteční obsah S i do své lokální paměti a bude používat M [i] jako pomocnou pamět ovou buňku pro simulování přístupu k buňkám S i. 4. Simulace jedné původní operace READ: Každý procesor P i, i = 1,..., max(p, m ), opakuje pro k = 1,..., m/m : (a) je-li i 1,..., m, zapiš hodnotu k-té buňky svého úseku S i do M [i]. (b) je-li i 1,..., p a v nějakém M [j] se objevila hodnota, kterou by simulovaný procesor P i četl v tomto simulovaném kroku, přečti ji. 5. Lokální výpočetní krok procesoru P i, i = 1,..., p, je simulován procesorem P i v jednom kroku. 6. Simulace jedné operace WRITE je analogická simulaci operace READ. Časová složitost simulace pak plyne z faktu, že jeden krok původního algoritmu je simulován v t = O(m/m ) O(m/m ) = O(m/m ) krocích. 3 Simulace silnějšího PRAM na slabším PRAM Jak již bylo zmíněno v kapitole 1.3, různé podmodely PRAM mají různou výpočetní sílu. Při návrhu paralelního algoritmu se může stát, že výpočetní síla použitého podmodelu je vyšší, než výpočetní síle reálného PRAM počítače, např. pokud HW počítače neumí ošetřit konflikty přístupu do sdílených pamět ových buněk. V takovém případě je nutné přikročit k SW řešení konfliktních situací, tj. k simulaci výpočetně silnější PRAM podmodelu na výpočetně slabším PRAM počítači. Vzhledem k tomu, že možných simulačních kombinací je velké množství, zaměříme se na extrémní případ simulace výpočetně nejsilnějšího prioritního CRCW PRAM na výpočetně nejslabším EREW PRAM. Uved me si dvě možné simulační metody. Věta 3 Uvažujme Prioritní CRCW PRAM s prioritním systémem založeným na indexování procesorů a to takovým, že procesory s nižším indexem mají vyšší prioritu. Jeden krok p-procesorového Prioritního CRCW PRAM s m buňkami sdílené paměti lze simulovat na p-procesorovém EREW PRAM s m p buňkami sdílené paměti v t = O(log p) krocích. Důkaz. 1. Každý procesor P k, k = 1,..., p, v Prioritním CRCW je simulován EREW procesorem P k. 2. Každá buňka sdílené paměti M[i], i = 1,..., m, v Prioritním CRCW je simulována polem p buněk sdílené paměti M [i, k], k = 1,..., p, na EREW. M [i, 1] hraje roli M[i]. M [i, 2],..., M [i, p] jsou pomocné buňky organizované jako vnitřní uzly úplného binárního stromu T i s p listy, i = 1,..., m. Výška stromu T i je log p. 3. Simulace kroku prioritní WRITE. Každý EREW procesor musí zjistit, zda je procesorem s nejmenším indexem v rámci skupiny procesorů, žádajících o zápis do téže buňky. Pokud ano, je vítězem skupiny a může provést zápis. Postup je následující:

9 Simulace silnějšího PRAM na slabším PRAM 8 (a) Všechny buňky pomocných polí M [i, ] mají nastavený příznak s na prázdný. (b) Pokud chce P k zapisovat do M[i], procesor P [k] se stane aktivním a stane se k-tým listem stromu T i. Ví, zda je pravým či levým listem vzhledem ke svému rodiči, tj. dané buňce pomocného pole M [i, ]. (c) Každý aktivní levý procesor uloží své ID do rodičovské buňky ve svém stromě, nastaví její příznak s na obsazená a zůstane aktivní. (d) Každý aktivní pravý procesor zkontroluje svou rodičovskou buňku. Je-li s = prázdná, uloží do ní své ID, nastaví s na obsazená a zůstane aktivní. V opačném případě se přepne do stavu neaktivní. (e) Toto se opakuje log p-krát na dalších hladinách stromu. (f) Procesor, kterému se podařilo postoupit do kořene T i se stává vítězem, který může zapsat do M [i, 1]. Procesory, které používaly strom T i ho pak musí projít dolů v opačném pořadí a vynulovat příznak s. 4. Simulace kroku Prioritní READ je podobná. (a) Paralelně se provedou stejné průchody stromy T i směrem nahoru, aby se určili vítězové ve skupinách. (b) Vítězové přečtou hodnotu z buněk M [, 1]. (c) Během zpětného průchodu stromy T i směrem dolů si procesory, které prohrály, kromě nastavování příznaku s kopírují načtenou hodnotu. Druhý simulační algoritmus má stejně jako předchozí optimální časovou složitost (i když skrytá konstanta je větší), ale vyžaduje pomocné pole, kde stačí pouze jedna buňka na jeden simulovaný procesor. Věta 4 Uvažujme Prioritní CRCW PRAM, kde procesory s nižším indexem mají vyšší prioritu. Jeden krok Prioritního CRCW PRAM s p procesory a m buňkami sdílené paměti lze simulovat na EREW PRAM s p procesory a m + p buňkami sdílené paměti v t = O(log p) krocích. Důkaz. 1. Každý procesor P k, k = 1,..., p, v Prioritním CRCW je simulován EREW procesorem P k. 2. Každá buňka M[i], i = 1,..., m, v Prioritním CRCW je simulována EREW buňkou M [i]. 3. EREW používá pomocné pole A s p buňkami. 4. Chce-li P k přístup do M[i], procesor P k zapíše do buňky A[k] dvojici (i, k), v opačném případě zapíše dvojici (0, k). 5. Všech p procesorů provede paralelní setřídění pole A podle indexů procesorů lexikograficky vhodným EREW algoritmem s časovou složitostí O(log p)). 6. Každý P k připojí k buňce A[k] příznak s, kde: 0 je-li první položka dvojice A[k] bud rovna 0 nebo je-li shodná s první položkou s = předchozí dvojice A[k-1], 1 jinak. Další kroky se liší podle toho, zde simulujeme WRITE nebo READ.

10 Asynchronní PRAM (APRAM) model 9 7. Prioritní WRITE: (a) Každý P k přečte trojici (i, j, s) ze své buňky A[k] a zapíše ji do A[j] (tato permutace je bezkonfliktní). V tomto okamžiku má každý procesor P k ve své buňce A[k] zpět svoji trojici (, k, ). (b) Každý P k přečte trojici (i, k, s) ze své buňky A[k]. Je-li s = 1, stal se vítězem a může zapsat do M[i] svoji hodnotu. 8. Prioritní READ: (a) Každý P k přečte trojici (i, j, s) ze své buňky A[k]. (b) Každý P k s s = 1 přečte hodnotu v i z M [i] a uloží ji do trojice (i, j, v i ). Jelikož ale díky předchozímu třídění došlo k permutaci trojic, není prozatím v A[k] jeho vlastní výsledek. (c) Sémantika operace Prioritní READ je taková, že každý, kdo požádal o čtení, by měl obsah požadované buňky dostat. Vzhledem k tomu, že sousední buňky v setříděném poli A obsahují požadavky na stejné pamět ové buňky, provedou všechny procesory pomocí EREW algoritmu binárního zdvojování jednoduše rozkopírování trojice (i,, v i ) do všech (i,, 0) v O(log p) krocích. (d) Každý P k přečte trojici (i, j, v i) ze své buňky A[k] a uloží ji do A[j]. Tím se požadavek dostává do buňky svého původce. (e) Každý P k, který žádal o READ si přečte hodnotu v i z trojice (i, k, v i ) ze své buňky A[k]. 4 Asynchronní PRAM (APRAM) model Reálné paralelní počítače se vetšinou od idealizovaného PRAM modelu liší v několika důležitých skutečnostech: jednak jejich procesory nepracují synchronně a navíc přístup do sdílené paměti je časově náročnější než přístup do lokálních registrů. Z tohoto důvodu je užitečné mít k dispozici model, který bude lépe reflektovat možnosti reálných počítačů. Tím může být například model APRAM (Asynchronous PRAM), který se od klasického PRAM odlišuje těmito vlastnostmi: procesory pracují asynchronně, procesory je potřeba explicitně synchronizovat, a doba přístupu do sdílené paměti není jednotková. 4.1 APRAM výpočet APRAM výpočet může provádět instrukce 4 typů: 1. Globální čtení - přečte obsah sdílené pamět ové buňky do lokální paměti. 2. Lokální výpočet - provede jakoukoliv RAM instrukci s operandy a výsledky uloženými v lokální paměti. 3. Globální zápis - zapíše hodnotu z lokální paměti do sdílené paměti. 4. Bariérová synchronizace - každý proces se v bodě bariéry zastaví až do doby, než k ní dorazí všechny zbývající procesy, pro které byla bariéra definována. Výpočet na APRAM je pak definován jako posloupnost asynchronně prováděných globálních fází oddělených bariérovou synchronizací. V rámci daných globálních fází musí být zápis do sdílených pamět ových buněk exkluzivní.

11 Asynchronní PRAM (APRAM) model Výkonostní parametry modelu APRAM Složitost jednotlivých APRAM operací je následující: Složitost lokální operace je 1. Složitost globální operace čtení nebo zápisu je obecně d. Pro jednoduchost předpokládáme, že d 2 je konstanta. Složitost implementace bariéry b(p) je vždy neklesající funkcí p, kde d b(p) p. Typické hodnoty jsou b(p) = Θ(d log p) pro implementaci pomocí binárního redukčního stromu nebo b(p) = Θ(d p) pro implementaci pomocí centrálního čítače [1]. k po sobě jdoucích operací globálního čtení nebo zápisu má složitost d + k 1, ne d k, jak by se dalo předpokládat, což odráží vlastnosti současných sběrnicových systémů [1].

12 Kontrolní otázky 11 5 Kontrolní otázky Co je to výpočetní model PRAM a k čemu slouží? Jaké rozličujeme výpočetní podmodely PRAM z hlediska řízení souběžného přístupu k pamět ovým buňkám? Jakým způsobem ovlivňuje simulace většího PRAM na menším časovou a pamět ovou složitost algoritmu? Jakým způsobem ovlivňuje simulace silnějšího PRAM na slabším časovou a pamět ovou složitost algoritmu?

13 REFERENCE 12 Reference [1] Pavel Tvrdík. Paralelní systémy a algoritmy. Vydavatelství ČVUT, Praha, 2005.

Stromy, haldy, prioritní fronty

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

Více

PARALELNÍ PROCESY A PROGRAMOVÁNÍ

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)

Více

Princip funkce počítače

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í

Více

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).

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é

Více

Architektury paralelních počítačů II.

Architektury paralelních počítačů II. Architektury paralelních počítačů II. Sekvenční konzistence paměti Implementace synchronizačních událostí Ing. Miloš Bečvář s použitím slajdů Prof. Ing. Pavla Tvrdíka, CSc. Osnova přednášky Opakování definice

Více

Vztah teorie vyčíslitelnosti a teorie složitosti. IB102 Automaty, gramatiky a složitost, /31

Vztah teorie vyčíslitelnosti a teorie složitosti. IB102 Automaty, gramatiky a složitost, /31 Vztah teorie vyčíslitelnosti a teorie složitosti IB102 Automaty, gramatiky a složitost, 2. 12. 2013 1/31 IB102 Automaty, gramatiky a složitost, 2. 12. 2013 2/31 Časová složitost algoritmu počet kroků výpočtu

Více

V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2

V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2 Euklidův algoritmus Doprovodný materiál pro cvičení Programování I. NPRM044 Autor: Markéta Popelová Datum: 31.10.2010 Euklidův algoritmus verze 1.0 Zadání: Určete největšího společného dělitele dvou zadaných

Více

Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování.

Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování. 9.5 Třída NP Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování. Příklad. Uvažujme problém IND a následující

Více

Základní datové struktury III: Stromy, haldy

Základní datové struktury III: Stromy, haldy Základní datové struktury III: Stromy, haldy 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í

Více

Dynamické programování

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)

Více

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit Jednoduché stránkování Operační systémy Přednáška 8: Správa paměti II Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné velikosti

Více

4. Úvod do paralelismu, metody paralelizace

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.

Více

Datové struktury 2: Rozptylovací tabulky

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

Více

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Přednáška Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského

Více

Kapitola 13: Transakce. Koncept transakce. ACID vlastnosti

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

Více

SEKVENČNÍ LOGICKÉ OBVODY

SEKVENČNÍ LOGICKÉ OBVODY Sekvenční logický obvod je elektronický obvod složený z logických členů. Sekvenční obvod se skládá ze dvou částí kombinační a paměťové. Abychom mohli určit hodnotu výstupní proměnné, je potřeba u sekvenčních

Více

Architektury počítačů a procesorů

Architektury počítačů a procesorů Kapitola 3 Architektury počítačů a procesorů 3.1 Von Neumannova (a harvardská) architektura Von Neumann 1. počítač se skládá z funkčních jednotek - paměť, řadič, aritmetická jednotka, vstupní a výstupní

Více

Návrh Designu: Radek Mařík

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

Více

Systém adresace paměti

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

Více

Složitost Filip Hlásek

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í,

Více

Obecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012

Obecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012 Obecná informatika Přednášející Putovních přednášek Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Podzim 2012 Přednášející Putovních přednášek (MFF UK) Obecná informatika Podzim 2012 1 / 18

Více

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic. Základní principy konstrukce systémové sběrnice - shrnutí Shrnout základní principy konstrukce a fungování systémových sběrnic. 1 Co je to systémová sběrnice? Systémová sběrnice je prostředek sloužící

Více

Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63

Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63 Výpočetní modely Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince 2018 1/ 63 Nutnost upřesnění pojmu algoritmus Dosavadní definice pojmu algoritmus byla poněkud vágní. Pokud bychom pro nějaký problém

Více

Přehled paralelních architektur. Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur

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í

Více

Architektura procesorů PC shrnutí pojmů

Architektura procesorů PC shrnutí pojmů Architektura procesorů PC shrnutí pojmů 1 Co je to superskalární architektura? Minimálně dvě fronty instrukcí. Provádění instrukcí je možné iniciovat současně, instrukce se pak provádějí paralelně. Realizovatelné

Více

NUMERICKÝ MODEL NESTACIONÁRNÍHO PŘENOSU TEPLA V PALIVOVÉ TYČI JADERNÉHO REAKTORU VVER 1000 SVOČ FST 2014

NUMERICKÝ MODEL NESTACIONÁRNÍHO PŘENOSU TEPLA V PALIVOVÉ TYČI JADERNÉHO REAKTORU VVER 1000 SVOČ FST 2014 NUMERICKÝ MODEL NESTACIONÁRNÍHO PŘENOSU TEPLA V PALIVOVÉ TYČI JADERNÉHO REAKTORU VVER 1000 SVOČ FST 2014 Miroslav Kabát, Západočeská univerzita v Plzni, Univerzitní 8, 306 14 Plzeň Česká republika ABSTRAKT

Více

Paralelní programování

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)

Více

Amortizovaná složitost. Prioritní fronty, haldy (binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost

Amortizovaná složitost. Prioritní fronty, haldy (binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost Amortizovaná složitost. Prioritní fronty, haldy binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost 1. Asymptotické odhady Asymptotická složitost je deklarována na základě

Více

Přerušovací systém s prioritním řetězem

Přerušovací systém s prioritním řetězem Přerušovací systém s prioritním řetězem Doplňující text pro přednášky z POT Úvod Přerušovací systém mikropočítače může být koncipován několika způsoby. Jednou z možností je přerušovací systém s prioritním

Více

Strojový kód. Instrukce počítače

Strojový kód. Instrukce počítače Strojový kód Strojový kód (Machine code) je program vyjádřený v počítači jako posloupnost instrukcí procesoru (posloupnost bajtů, resp. bitů). Z hlediska uživatele je strojový kód nesrozumitelný, z hlediska

Více

Architektura počítačů

Architektura počítačů Architektura počítačů Studijní materiál pro předmět Architektury počítačů Ing. Petr Olivka katedra informatiky FEI VŠB-TU Ostrava email: petr.olivka@vsb.cz Ostrava, 2010 1 1 Architektura počítačů Pojem

Více

OPS Paralelní systémy, seznam pojmů, klasifikace

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

Více

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem Test prvočíselnosti Úkol: otestovat dané číslo N, zda je prvočíslem 1. zkusit všechny dělitele od 2 do N-1 časová složitost O(N) cca N testů 2. stačí zkoušet všechny dělitele od 2 do N/2 (větší dělitel

Více

Architektura Pentia úvod

Architektura Pentia úvod Architektura Pentia úvod 1 Co je to superskalární architektura? Minimálně dvě fronty instrukcí. Provádění instrukcí je možné iniciovat současně, instrukce se pak provádějí paralelně. Realizovatelné jak

Více

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D.

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

Více

Pohled do nitra mikroprocesoru Josef Horálek

Pohled do nitra mikroprocesoru Josef Horálek Pohled do nitra mikroprocesoru Josef Horálek Z čeho vycházíme = Vycházíme z Von Neumannovy architektury = Celý počítač se tak skládá z pěti koncepčních bloků: = Operační paměť = Programový řadič = Aritmeticko-logická

Více

Select sort: krok 1: krok 2: krok 3: atd. celkem porovnání. výběr nejmenšího klíče z n prvků vyžaduje 1 porovnání

Select sort: krok 1: krok 2: krok 3: atd. celkem porovnání. výběr nejmenšího klíče z n prvků vyžaduje 1 porovnání Select sort: krok 1: výběr klíče z n prvků vyžaduje 1 porovnání krok 2: výběr klíče z 1 prvků vyžaduje 2 porovnání krok 3: výběr klíče z 2 prvků vyžaduje 3 porovnání atd. celkem porovnání Zlepšení = použít

Více

Řízení IO přenosů DMA řadičem

Řízení IO přenosů DMA řadičem Řízení IO přenosů DMA řadičem Doplňující text pro POT K. D. 2001 DMA řadič Při přímém řízení IO operací procesorem i při použití přerušovacího systému je rychlost přenosu dat mezi IO řadičem a pamětí limitována

Více

AUTOMATY A GRAMATIKY. Pavel Surynek. Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace

AUTOMATY A GRAMATIKY. Pavel Surynek. Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace AUTOMATY A 11 GRAMATIKY Pavel Surynek Univerzita Karlova v Praze Matematicko-fyzikální fakulta Katedra teoretické informatiky a matematické logiky Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně

Více

Pamět ová hierarchie, návrh skryté paměti 2. doc. Ing. Róbert Lórencz, CSc.

Pamět ová hierarchie, návrh skryté paměti 2. doc. Ing. Róbert Lórencz, CSc. Architektura počítačových systémů Pamět ová hierarchie, návrh skryté paměti 2 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ů

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Třídění, vyhledávání Daniela Szturcová

Více

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 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ů

Více

Od Turingových strojů k P=NP

Od Turingových strojů k P=NP Složitost Od Turingových strojů k P=NP Zbyněk Konečný Zimnění 2011 12. 16.2.2011 Kondr (Než vám klesnou víčka 2011) Složitost 12. 16.2.2011 1 / 24 O čem to dnes bude? 1 Co to je složitost 2 Výpočetní modely

Více

Základy algoritmizace a programování

Základy algoritmizace a programování Základy algoritmizace a programování Složitost algoritmů. Třídění Přednáška 8 16. listopadu 2009 Který algoritmus je "lepší"? Různé algoritmy, které řeší stejnou úlohu zbytek = p % i; zbytek = p - p/i*i;

Více

Algoritmy I, složitost

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á??

Více

Struktura a architektura počítačů (BI-SAP) 11

Struktura a architektura počítačů (BI-SAP) 11 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 11 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii

Více

Systémy pro sběr a přenos dat

Systémy pro sběr a přenos dat Systémy pro sběr a přenos dat Centralizované SPD VME, VXI Compact PCI, PXI, PXI Express Sběrnice VME 16/32/64 bitová paralelní sběrnice pro průmyslové aplikace Počátky v roce 1981 neustále se vyvíjí původní

Více

Adresní mody procesoru

Adresní mody procesoru Adresní mody procesoru K.D. - přednášky 1 Obecně o adresování Různé typy procesorů mohou mít v instrukci 1, 2 nebo více adres. Operandy mohou ležet v registrech nebo v paměti. Adresní mechanismus procesoru

Více

KTE/TEVS - Rychlá Fourierova transformace. Pavel Karban. Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni

KTE/TEVS - Rychlá Fourierova transformace. Pavel Karban. Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni KTE/TEVS - Rychlá Fourierova transformace Pavel Karban Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni 10.11.011 Outline 1 Motivace FT Fourierova transformace

Více

Dijkstrův algoritmus

Dijkstrův algoritmus Dijkstrův algoritmus Hledání nejkratší cesty v nezáporně hranově ohodnoceném grafu Necht je dán orientovaný graf G = (V, H) a funkce, která každé hraně h = (u, v) H přiřadí nezáporné reálné číslo označované

Více

Algoritmus pro hledání nejkratší cesty orientovaným grafem

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

Více

ALGORITMY A DATOVÉ STRUKTURY

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

Více

Paměti a jejich organizace

Paměti a jejich organizace Kapitola 5 Paměti a jejich organizace 5.1 Vnitřní a vnější paměti, vlastnosti jednotlivých typů Vnější paměti Jsou umístěny mimo základní jednotku. Lze je zařadit mezi periferní zařízení. Zápis a čtení

Více

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové

Více

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

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

Více

Vyvažování a rotace v BVS, všude se předpokládá AVL strom

Vyvažování a rotace v BVS, všude se předpokládá AVL strom Vyvažování a rotace v BVS, všude se předpokládá AVL strom 1. Jednoduchá levá rotace v uzlu u má operační složitost a) závislou na výšce levého podstromu uzlu u b) mezi O(1) a Θ(n) c) závislou na hloubce

Více

TÉMATICKÝ OKRUH TZD, DIS a TIS

TÉMATICKÝ OKRUH TZD, DIS a TIS TÉMATICKÝ OKRUH TZD, DIS a TIS Číslo otázky : 15. Otázka : Paralelní procesy v databázích. Transakce, zamykání, uváznutí. Dvoufázový protokol, časová razítka. Obsah : 1 Úvod 2 Paralelní procesy v databázích

Více

Prioritní fronta, halda

Prioritní fronta, halda Prioritní fronta, halda Priority queue, heap Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2018 1 / 26 Prioritní fronta Halda Heap sort 2 / 26 Prioritní fronta (priority queue) Podporuje

Více

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. 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ý

Více

NPRG030 Programování I, 2018/19 1 / :03:07

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í

Více

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010 Přednášky o výpočetní technice Hardware teoreticky Adam Dominec 2010 Rozvržení Historie Procesor Paměť Základní deska přednášky o výpočetní technice Počítací stroje Mechanické počítačky se rozvíjely už

Více

4. Trojúhelníkový rozklad p. 1/20

4. Trojúhelníkový rozklad p. 1/20 4. Trojúhelníkový rozklad 4. Trojúhelníkový rozklad p. 1/20 4. Trojúhelníkový rozklad p. 2/20 Trojúhelníkový rozklad 1. Permutační matice 2. Trojúhelníkové matice 3. Trojúhelníkový (LU) rozklad 4. Výpočet

Více

Procesor. Procesor FPU ALU. Řadič mikrokód

Procesor. Procesor FPU ALU. Řadič mikrokód Procesor Procesor Integrovaný obvod zajišťující funkce CPU Tvoří srdce a mozek celého počítače a do značné míry ovlivňuje výkon celého počítače (čím rychlejší procesor, tím rychlejší počítač) Provádí jednotlivé

Více

Systém řízení sběrnice

Systém řízení sběrnice Systém řízení sběrnice Sběrnice je komunikační cesta, která spojuje dvě či více zařízení. V určitý okamžik je možné aby pouze jedno z připojených zařízení vložilo na sběrnici data. Vložená data pak mohou

Více

Michal Krátký. Úvod do programování. Cíl kurzu. Podmínky získání zápočtu III/III

Michal Krátký. Úvod do programování. Cíl kurzu. Podmínky získání zápočtu III/III Michal Krátký Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 tel.: +420 596 993 239 místnost: A1004 mail: michal.kratky@vsb.cz

Více

Složitost 1.1 Opera ní a pam ová složitost 1.2 Opera ní složitost v pr rném, nejhorším a nejlepším p ípad 1.3 Asymptotická složitost

Složitost 1.1 Opera ní a pam ová složitost 1.2 Opera ní složitost v pr rném, nejhorším a nejlepším p ípad 1.3 Asymptotická složitost 1 Složitost 1.1 Operační a paměťová složitost Nezávislé určení na konkrétní implementaci Několik typů operací = sčítání T+, logické T L, přiřazení T A(assign), porovnání T C(compare), výpočet adresy pole

Více

(viztakéslidyktétopřednášce...) Poznámka. Neudělali jsme vše tak podrobně, jak je to v zápisu.

(viztakéslidyktétopřednášce...) Poznámka. Neudělali jsme vše tak podrobně, jak je to v zápisu. Teoretická informatika průběh výuky v semestru 1 Týden 8 Přednáška- první část (viztakéslidyktétopřednášce...) Poznámka. Neudělali jsme vše tak podrobně, jak je to v zápisu. Turingovy stroje,(výpočetní)

Více

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO 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

Více

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. 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

Více

Katedra informatiky a výpočetní techniky. 10. prosince Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.

Katedra informatiky a výpočetní techniky. 10. prosince Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc. Katedra informatiky a výpočetní techniky České vysoké učení technické, fakulta elektrotechnická Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc. 10. prosince 2007 Pamět ové banky S výhodou používáme

Více

Rekurzivní algoritmy

Rekurzivní algoritmy Rekurzivní algoritmy 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) ZS

Více

Přidělování paměti II Mgr. Josef Horálek

Přidělování paměti II Mgr. Josef Horálek Přidělování paměti II Mgr. Josef Horálek Techniky přidělování paměti = Přidělování jediné souvislé oblasti paměti = Přidělování paměti po sekcích = Dynamické přemisťování sekcí = Stránkování = Stránkování

Více

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem ČVUT FEL X36PAA - Problémy a algoritmy 3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem Jméno: Marek Handl Datum: 1. 1. 2009 Cvičení: Pondělí 9:00 Zadání Naprogramujte

Více

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. 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ý

Více

Architektura počítačů Logické obvody

Architektura počítačů Logické obvody Architektura počítačů Logické obvody http://d3s.mff.cuni.cz/teaching/computer_architecture/ Lubomír Bulej bulej@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Digitální

Více

Složitosti základních operací B + stromu

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 +

Více

Algoritmizace řazení Bubble Sort

Algoritmizace řazení Bubble Sort Algoritmizace řazení Bubble Sort Cílem této kapitoly je seznámit studenta s třídícím algoritmem Bubble Sort, popíšeme zde tuto metodu a porovnáme s jinými algoritmy. Klíčové pojmy: Třídění, Bubble Sort,

Více

Digitální učební materiál

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_147_IVT Autor: Ing. Pavel Bezděk Tematický okruh:

Více

Hardware - komponenty počítačů Von Neumannova koncepce počítače. Von Neumannova koncepce počítače

Hardware - komponenty počítačů Von Neumannova koncepce počítače. Von Neumannova koncepce počítače V roce 1945 vystoupil na přednášce v USA matematik John von Neumann a představil architekturu samočinného univerzálního počítače (von Neumannova koncepce/schéma/architektura). Základy této koncepce se

Více

Třídy složitosti P a NP, NP-úplnost

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í

Více

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21

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í

Více

1. Databázové systémy (MP leden 2010)

1. Databázové systémy (MP leden 2010) 1. Databázové systémy (MP leden 2010) Fyzickáimplementace zadáníaněkterářešení 1 1.Zkolikaajakýchčástíseskládáčasprovstupněvýstupníoperaci? Ze tří částí: Seektime ječas,nežsehlavadiskudostanenadsprávnou

Více

Paměťový podsystém počítače

Paměťový podsystém počítače Paměťový podsystém počítače typy pamětových systémů počítače virtuální paměť stránkování segmentace rychlá vyrovnávací paměť 30.1.2013 O. Novák: CIE6 1 Organizace paměťového systému počítače Paměťová hierarchie...

Více

Prohledávání do šířky = algoritmus vlny

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é

Více

Hranová konzistence. Arc consistency AC. Nejprve se zabýváme binárními CSP. podmínka odpovídá hraně v grafu podmínek

Hranová konzistence. Arc consistency AC. Nejprve se zabýváme binárními CSP. podmínka odpovídá hraně v grafu podmínek Hranová konzistence Arc consistency AC Nejprve se zabýváme binárními CSP podmínka odpovídá hraně v grafu podmínek Hrana (V i, V j ) je hranově konzistentní, právě když pro každou hodnotu x z aktuální domény

Více

Časová a prostorová složitost algoritmů

Časová a prostorová složitost algoritmů .. Časová a prostorová složitost algoritmů Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Hodnocení algoritmů Programovací techniky Časová a prostorová

Více

Teoretická informatika průběh výuky v semestru 1

Teoretická informatika průběh výuky v semestru 1 Teoretická informatika průběh výuky v semestru 1 Týden 8 Přednáška Model RAM Ve studijním textu je detailně popsán model RAM, který je novějším výpočetním modelem než Turingův stroj a vychází z architektury

Více

Profilová část maturitní zkoušky 2013/2014

Profilová část maturitní zkoušky 2013/2014 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2013/2014 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA

Více

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program Denotační sémantika programovacího jazyka doc. Dr. Ing. Miroslav Beneš katedra informatiky, A-1007 59 732 4213 Obsah přednášky Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup

Více

Programovací jazyk Pascal

Programovací jazyk Pascal Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce

Více

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Tomáš Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Zjednodušené schéma systému z základ hardware pro mainframe tvoří: operační pamět - MAIN / REAL STORAGE jeden

Více

Trénování sítě pomocí učení s učitelem

Trénování sítě pomocí učení s učitelem Trénování sítě pomocí učení s učitelem! předpokládá se, že máme k dispozici trénovací množinu, tj. množinu P dvojic [vstup x p, požadovaný výstup u p ]! chceme nastavit váhy a prahy sítě tak, aby výstup

Více

Operační systémy 2: Zápočtové úkoly

Operační systémy 2: Zápočtové úkoly Operační systémy 2: Zápočtové úkoly 18. listopad 2010 1 Paralelní Mergesort Implementujte paralelní verzi algoritmu Merge sort, který bude řadit celá čísla uložená v textovém souboru. Program bude mít

Více

Pojem algoritmus. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava

Pojem algoritmus. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Pojem algoritmus doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Pojem algoritmus 54 / 344

Více

3. Vícevrstvé dopředné sítě

3. Vícevrstvé dopředné sítě 3. Vícevrstvé dopředné sítě! Jsou tvořeny jednou nebo více vrstvami neuronů (perceptronů). Výstup jedné vrstvy je přitom připojen na vstup následující vrstvy a signál se v pracovní fázi sítě šíří pouze

Více

přetížení operátorů (o)

přetížení operátorů (o) přetížení operátorů (o) - pro vlastní typy je možné přetížit i operátory (tj. definovat vlastní) - pro definici slouží klíčové slovo operator následované typem/znakem operátoru - deklarace pomocí funkčního

Více

Vzdálenost uzlů v neorientovaném grafu

Vzdálenost uzlů v neorientovaném grafu Vzdálenosti a grafy Vzdálenost uzlů v neorientovaném grafu Je dán neorientovaný neohodnocený graf G = (V,E,I) vzdálenost uzlů u a v v neorientovaném souvislém grafu G je délka nejkratší cesty spojující

Více

Pokročilé haldy. prof. Ing. Pavel Tvrdík CSc. Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010

Pokročilé haldy. prof. Ing. Pavel Tvrdík CSc. Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Pokročilé haldy 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 (I-EFA) ZS 2010/11,

Více

Základní komunikační operace

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

Více

Výroková a predikátová logika - III

Výroková a predikátová logika - III Výroková a predikátová logika - III Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - III ZS 2017/2018 1 / 16 2-SAT 2-SAT Výrok je v k-cnf, je-li v CNF a

Více