PARALELNÍ PROCESY A PROGRAMOVÁNÍ
|
|
- Martin Soukup
- před 7 lety
- Počet zobrazení:
Transkript
1 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) a rozpočtu české republiky v rámci řešení projektu: CZ 107/2200/150463, MOD- ERNIZACE VÝUKOVÝCH MATERIÁLŮ A DIDAKTICKÝCH METOD
2 OBSAH 1 Obsah 1 Motivace pro paralelizaci redukce 3 2 Sekvenční a paralelní redukce 3 3 Sekvenční a paralelní prefixová redukce 3 31 Sekvenční prefixový součet 4 32 Paralelní prefixový součet na CdT n 5 33 Paralelní prefixový součet na Q n 6 34 Paralelní prefixový součet na EREW PRAM Neškálovaný paralelní prefixový součet na EREW PRAM Škálovaný paralelní prefixový součet na EREW PRAM 6 35 Segmentový paralelní prefixový součet 9 4 Aplikace paralelní prefixové redukce 9 41 Zhušt ovací problém a paralelní PrefixSort 9 42 Binární sčítačka Paralelní QuickSort 11 5 Kontrolní otázky 13
3 OBSAH 2 STRUČNÝ OBSAH PŘEDNÁŠKY Motivace pro paralelizaci redukce Sekvenční a paralelní redukce Sekvenční a paralelní prefixová redukce Aplikace paralelní prefixové redukce MOTIVACE Redukce a prefixové redukce jsou jedněmi z nejčastěji používaných (a implementovaných) paralelních algoritmů sloužících jako základ dalších, složitějších algoritmů V této přednášce se seznámíme se základními vlastnostmi a implementacemi redukčních algoritmů na různých paralelních systémech CÍL Seznámit se se základními vlastnostmi a implementačními aspekty některých paralelních redukčních algoritmů
4 Motivace pro paralelizaci redukce 3 1 Motivace pro paralelizaci redukce Obecná redukce prvků množiny/pole je velmi častým algoritmickým problémem Operátorem redukce můžeme chápat téměř jakoukoliv (matematickou) operaci schopnou zredukovat 2 operandy do jedné výsledkové hodnoty Typicky se může jednat o součet nebo násobení, obecně však lze redukční operátor nadefinovat libovolným způsobem (např sloučení bitmap, součet prvků vícerozměrných polí, atd) Je zřejmé že časová složitost redukce se bude úzce odvíjet o od časové složitosti samotného redukčního operátoru Je-li časová složitost redukčního operátoru dostatečně vysoká, bývá výhodné redukci více prvků paralelizovat, čímž lze dosáhnout zajímavého (ideálně lineárního) zrychlení Samozřejmě je nutné brát v úvahu vhodnou granularitu a škálovatelnost problému 2 Sekvenční a paralelní redukce Obecnou redukci více operandů lze definovat následovně: Necht je dáno vstupní pole X = {x 0, x 1,, x n 1 } prvků množiny D a binární operace nad D Pak cílem redukce je vypočítat hodnotu například tak, je je uvedeno v algoritmu 1 Algoritmus 1 Triviální sekvenční redukce S 0 for i = 0 to n 1 do S = S X[i] S = x 0 x 1 x n 1 (1) Dolní i horní mez tohoto problému je SL(n) = SU(n) = Θ(n), je-li problém řešen sekvenčně Vhodnou paralelizací redukce však lze celou operaci provést v čase O(log n) při zachování cenové optimality, jak bylo diskutováno v kapitole zabývající se analýzou časové složitosti paralelních algoritmů Příklady implementace paralelní redukce na různých paralelních systémech jsou uvedeny na obrázku 1 Jak je patrné, všechny systémy byly schopny z redukovat 8 hodnot, ve 3 krocích, čili v logaritmickém čase Pseudokód paralelní redukce implementované na EREW PRAM je uveden v algoritmu 2 Algoritmus 2 Triviální paralelní redukce for j = 1,, log n do sequentially for all i = 0 to n 1 step 2 j do in parallel P i : X[i] = X[i] X[i + 2 j 1 ] S X[0] 3 Sekvenční a paralelní prefixová redukce Prefixová redukce (prefixový součet) je zobecněním redukce diskutované v kapitole 2 a má stejné časové charakteristiky Zatímco u klasické redukce je výsledkem operace pouze jedna hodnota, u prefixové redukce n hodnot dostaneme po ukončení výpočtu n výsledků
5 Sekvenční a paralelní prefixová redukce 4 Obrázek 1: Implementace paralelní redukce na různých typech paralelních systémů [1] Mějme vstupní pole X = x 0, x 1,, x n 1 z množiny D a asociativní binární operaci nad D Výstupem výpočtu je stejně velké pole Y, kde y i je rovno redukci počátečních i hodnot z X Čili úkolem je vypočítat pole Y = y 0, y 1,, y n 1 všech prefixů pole X tak, že y i = x 0 x 1 x i, jak je naznačeno no obrázku 2 Obrázek 2: Vstup a výstup prefixové redukce [1] Pro jednoduchost budeme v dalších kapitolách jako redukční operátor uvažovat součet, nebude-li řečeno jinak 31 Sekvenční prefixový součet Sekvenční prefixový součet je velmi triviálním algoritmem a nepotřebuje bližšího zkoumání Časová složitost je opět Θ(n) a jeho pseudokód je uveden v algoritmu 3 Algoritmus 3 Sekvenční prefixová redukce Require: i: int; sum, X[n], Y[n] : D sum X[0]; Y [0] sum for i = 1 to n 1 do sum = sum X[i] Y [i] sum
6 Sekvenční a paralelní prefixová redukce 5 32 Paralelní prefixový součet na CdT n Implementace paralelního prefixového součtu (PPS) na topologii d-árního stromu CdT n je již daleko zajímavější Předpokládejme ICNW nepřímého stromu kde koncové listové uzly obsahují hodnoty, z nichž má být spočten PPS Pak PPS N vstupních hodnot v listech binárního stromu CBT výšky h(cbt ) lze vypočítat ve 2h(CBT ) krocích Je-li CBT úplný, pak PPS potřebuje O(log N) kroků Celá operace PPS se na CBT rozloží do několika vzestupných a sestupných vln Každá vzestupná vlna vygeneruje další vzestupnou vlnu (pokud jsme již nedosáhli kořene stromu) a h(cbt ) sestupných vln Obrázek 3: Vzestupné a sestupné vlny na CdT [1] Při vzestupné vlně se rodičovskému listu odesílá součet hodnot přicházejících od synů Zároveň je generována sestupná vlna tak, jak je patrné z obrázku 3 Hodnoty, které v rámci sestupných vln dorazí až ke konečným listům jsou přičteny k jejich aktuální hodnotě Po doznění všech vln obsahují koncové listové uzly kompletní PPS Celý algoritmus je ilustrován na obrázku 4 Obrázek 4: Paralelní prefixový součet na CBT [1]
7 Sekvenční a paralelní prefixová redukce 6 33 Paralelní prefixový součet na Q n Paralelní prefixový součet na hyperkrychli je implementován jako jednoduché rozšíření algoritmu vysílání všichni-ke-všem Předpokládejme že PPS bude sčítat N hodnot Dále předpokládejme binární hyperkrychli Q n kde n = log N PPS pak bude pomocí algoritmu 4 spočítán v čase O(log N) Princip výpočtu je jednoduchý Každý procesor P i bude obsahovat dva pomocné registry: zelený a žlutý Nejprve budou oba registry v daném procesoru inicializovány stejnou vstupní hodnotou Poté následuje n paralelních fází, ve kterých si procesory vzájemně vymění obsahy zelených registrů a přičtou je k obsahům svých vlastních zelených registrů Procesor, který má v rámci dimenze, po které data putovala, vyšší adresu, přičte příchozí hodnotu také ke svému žlutému registru Po vykonání všech n fází, při kterých byla data zasílána postupně přes všechny dimenze, budou žluté registry procesorů obsahovat kompletní hodnoty PPS Adresy konkrétních procesorů představují indexy výsledků v pomyslném výstupním poli Algoritmus 4 Paralelní prefixový součet na Q n Require: i: int; zeleny, zluty, X[N] : D for all P i, i = 0,, 2 n 1 do in parallel zeleny zluty X[i] for j = 0 to n 1 do sequentially send zeleny i P i XOR 2 j receive novyzeleny P i XOR 2 j zeleny i = zeleny i + novyzeleny if i XOR 2 j < i then zluty i = zluty i + novyzeleny end if Celý postup je ilustrován na obrázku 5 34 Paralelní prefixový součet na EREW PRAM V případě paralelního prefixového součtu na EREW PRAM si budeme demonstrovat dva typy vhodných algoritmů V prvním případě se bude jednat o neškálovaný PPS kde předpokládáme, že paralelní systém disponuje stejným množstvím procesorů, jako je počet sčítaných hodnot Je zřejmé, že takový algoritmus bude cenově neoptimální a tudíž neefektivní a proto si zde uvedeme také optimální škálovaný PPS 341 Neškálovaný paralelní prefixový součet na EREW PRAM Mějme n procesorů P 0,, P n 1 a pole X = x 0,, x n 1 uložené ve sdílené paměti M[0],, M[n 1] Každý P i má pomocný registr y i Neškálovaný výpočet PPS na EREW PRAM s časovou složitostí O(log n) je uveden v algoritmu 5 a jeho průběh je ilustrován na obrázku Škálovaný paralelní prefixový součet na EREW PRAM Jak je patrné z obrázku 6, velké množství procesorů nemá v průběhu neškálovaného EREW PRAM PPS dostatek užitečné práce, čímž za předpokladu malé časové složitosti redukční operace narůstá podíl paralelní režie ve výpočtu a tím i paralelní cena Abychom dosáhli efektivní paralelizace, bude zapotřebí zvolit lepší granularitu a tím zajistit dostatek práce pro všechny procesory v průběhu celého výpočtu O to se snaží škálovaná varianta EREW PRAM PPS
8 Sekvenční a paralelní prefixová redukce 7 Obrázek 5: Paralelní prefixový součet na Q n [1] Obrázek 6: Neškálovaný paralelní prefixový součet na EREW P RAM [1] Uvažujme vstupní pole X = {x 0, x 1,, x n 1 } a p procesorů P 0,, P p 1 Necht q = n p Rozdělíme X do p subpolí X 0,, X p 1 po q prvcích a přidělíme každé X i příslušnému P i V první fázi každý P i vypočte prefixový součet nad X i sekvenčně Tato fáze zabere O( n p ) kroků Ve druhé fázi bude vypočten prefixový součet nad pravými krajními hodnotami všech p subpolí X i Jelikož je počet subpolí stejný jako počet procesorů, lze tuto fázi implementovat pomocí neškálovaného EREW PRAM PPS a provést ji v O(log p) krocích V závěrečné třetí fázi bude ke všem hodnotám subpolí X i, i = 1,, p 1 s výjimkou nejpravějšího prvku přičtena hodnota nejpravějšího prvku subpole X i 1 Tato operace bude trvat opět O( n p ) kroků Po této operaci bude pole X obsahoval kompletní PPS všech vstupních hodnot Celková časová složitost výpočtu bude T (n, p) = O( n p + log p), což za předpokladu n p zaručuje cenovou opti-
9 Sekvenční a paralelní prefixová redukce 8 Algoritmus 5 Neškálovaný paralelní prefixový součet na EREW P RAM Require: i, j : int; y i, M[n] : D for all P i, i = 0 to n 1 do in parallel y i M[i] for j = 0 to log n 1 do sequentially for all P i, i = 2 j to n 1 do in parallel y i = y i + M[i 2 j ] for all P i, i = 2 j to n 1 do in parallel M[i] = y i malitu výpočtu i při nízké časové složitosti redukční operace Pseudokód škálovaného PPS na EREW PRAM je uveden v algoritmu 6 Algoritmus 6 Škálovaný paralelní prefixový součet na EREW P RAM Require: i, j : int; S i [q], X[n], Z[p] : D for all P i, i = 0 to p 1 do in parallel P i sekvenčně výpočte pole S i = prefixový součet nad X i Z[i] S i [q 1] všechny P i vypočtou paralelně PPS nad Z pomocí algoritmu 5 for all P i, i = 1 to p 1 do in parallel for j = 0 to j < q 1 do S i [j] = S i [j] + Z[i 1] S i X i Průběh algoritmu 6 je ilustrován na obrázku 7 Obrázek 7: Škálovaný paralelní prefixový součet na EREW P RAM [1]
10 Aplikace paralelní prefixové redukce 9 35 Segmentový paralelní prefixový součet Segmentový paralelní prefixový součet (SPPS) je takovou modifikací základního algoritmu, kdy je vstupní pole o velikosti n rozděleno na s nestejně velkých segmentů S i a prefixové součty jsou spočteny pro segmenty Tabulka 1: Vstupní a výstupní pole segmentového PS Vstup Výstup Znaménko u operandů v tabulce 1 představuje krajní hodnoty u hranic segmentů Řešení tohoto problému je několik Uvažujme p jako počet procesorů P i Je-li s = p pak lze jednotlivé segmenty S i přidělit procesorům P i, které nad nimi spočtou prefixový součet v čase Θ(q i ) kde q i je počet prvků v segmentu S i Jelikož mají segmenty obecně různou velikost (a v extrémním případě budou všechny prvky obsaženy v jednom segmentu), bude celkový čas výpočtu T (n, p) = Θ(max{q i }) = O(n) Je-li n = p pak lze SPPS vypočíst v celkovém čase T (n, p) = O(log n) pomocí algoritmu 5 a modifikovaného operátoru jehož chování je popsáno v tabulce 2 Tabulka 2: Modifikovaný redukční operátor b b a a b b a (a b) b 4 Aplikace paralelní prefixové redukce Význam prefixového součtu (PS) není ani tak v implementaci samotného algoritmu ale v tom, že PS slouží jako základ dalších, složitějších algoritmů V následujících kapitolách si představíme některé z nich 41 Zhušt ovací problém a paralelní RadixSort Jednou z typických aplikací PS je implementace zhušt ovacího problému zmíněného v kapitole pojednávající o směrování v ICNW Uvažujme, že jistá podmnožina z p procesorů připojených ke vstupům nepřímé vícestupňové sítě typu n-rozměrný motýlek obf n má paket, který je nutno dopravit na druhou výstupní stranu sítě tak, aby i-tý paket, počítáno na vstupech odshora, skončil na i-tém výstupním vodiči shora Díky aplikaci PPS lze u zhušt ovacího problému rychle (v čase O(log p)) spočíst indexy cílových uzlů, tak jak je naznačeno na obrázku 8 Každý uzel, který drží paket bude obsahovat také hodnotu 1 ve vstupním poli PPS, uzel bez paketu bude obsahovat hodnotu 0 Z těchto hodnot bude spočten PS (např pomocí PPS implementovaného na stromě vnořeného do motýlka) čímž bude po závěrečné normalizaci indexů každý uzel vědět, kam má poslat svůj paket, aby byly na konci permutace zhuštěny do horní poloviny sítě Samotný zhušt ovací problém je pak základem dalšího algoritmu určeného pro paralelní třídění binárních hodnot nazvaného RadixSort Principem algoritmu je postupné třídění na základě zkoumání hodnot bitů jednotlivých řádů Necht X je posloupnost n k-bitových čísel, nultý bit je vpravo RadixSort je třídicí algoritmus, který není založen na porovnávání dvojice čísel, ale na permutaci, kterou značíme Split(X,i): čísla s
11 Aplikace paralelní prefixové redukce 10 Obrázek 8: Zhušt ovací problém na obf n a) počáteční hodnoty příznaků a jeden možný nepřímý strom, b) pole příznaků po PPS, c) konečné hodnoty indexů cílových řádků [1] nulovým i-tým bitem jsou zhuštěna doleva, čísla s jedničkovým i-tým bitem jsou zhuštěna doprava tak, jak je ilustrováno na obrázku 9 Algoritmus 7 Implementace paralelního třídění RadixSort Require: i: int; X[0,, 2 k 1] : D for i = 0 to k 1 do sequentially Split(X,i) Obrázek 9: Implementace paralelního RadixSortu pomocí zhušt ovacího problému [1] 42 Binární sčítačka Další z možných aplikací PS je rychlá binární sčítačka Mějme 2 n-bitová binární slova která chceme sečíst po bitech a p = n procesorů Díky existenci přenosu mezi vyššími řády při sčítání bitů binárních slov je dolní i horní sekvenční mez tohoto
12 Aplikace paralelní prefixové redukce 11 problému SL(n) = SU(n) = Θ(n) Paralelizací jsme schopni tento problém vyřešit v čase T (n, p) = O(1) + O(log n) Princip algoritmu je následující: Mějme dvě binární slova o velikosti n organizovaná jako bitová pole X = {x 0,, x n 1 } a Y = {y 0,, y n 1 } Výstupem bude součet těchto slov uložený v n-bitovém slovu Z = {z 0,, z n 1 } Postup výpočtu bude následující: 1 Všechny procesory P i vypočtou paralelně obsah slova B = {b 0,, b n 1 } tak, že porovnají bity x i a y i pomocí níže uvedeného předpisu: { (g)enerate ifxi = y i = 1 b i =, (s)top if x i = y i = 0, (p)ropagate jinak Doba trvání této operace bude T (n, p) = O(1) 2 Pomocí PPS a operátoru z tabulky 3 nad polem B vypočti pole B v čase T (n, p) = O(log n) Tabulka 3: Modifikovaný redukční operátor pro binární sčítačku s p g s s s s p s p g g g g g 3 Všechny procesory P i vypočtou přenosové slovo C = {c 0,, c n 1 } tak, že c 0 = 0 a c i = 1 b i 1 = g v čase T (n, p) = O(1) 4 Všechny procesory P i vypočtou výsledné slovo Z = {z 0,, z n 1 } tak, že z i = x i y i c i kde operátor představuje binární součet bez přenosu Doba této operace bude T (n, p) = O(1) Celý algoritmus je ilustrován na obrázku 10 Obrázek 10: Implementace paralelní binární sčítačky [1] 43 Paralelní QuickSort Využití SPPS si ukážeme na příkladu jedné z možných implementací paralelního třídicího algoritmu QuickSort Předpokládejme nesetříděné pole A[n] a p = n procesorů Princip činnosti algoritmu je pak následující:
13 Aplikace paralelní prefixové redukce 12 Algoritmus 8 Implementace paralelního třídicího algoritmu QuickSort pomocí SPPS Require: i: int; e: bool; A[n], S n [n], F [n], b s : D start: for all i = 0 to n 2 do in parallel f i = (a + i a i+1 ) Proved paralelní redukci hodnot f i pomocí operace AND a výsledek ulož do e if e = T RUE then EXIT end if for all aktuální segmenty S v A do in parallel vyber pivot b s S i [0] pošli b s všem procesorům uvnitř segmentu for all a i S do in parallel g i = (a i <> b s ), kde g i { <, =, > } /* každý S rozdělíme na 3 podsegmenty S <, S = a S > */ pomocí SPPS vypočti nové indexy prvků a i : g i = < uvnitř všech S pošli hodnoty maximálního indexu (= S < ) uvnitř všech S /* S < je rovno indexu začátku S = */ pomocí SPPS vypočti nové indexy prvků a i : g i = = uvnitř všech S pošli hodnoty maximálního indexu (= S = ) uvnitř všech S /* S < + S = je rovno indexu začátku S > */ pomocí SPPS vypočti nové indexy prvků a i : g i = > uvnitř všech S permutací segmentu S vytvoř 3 nové segmenty S = {S < S = S > } goto start
14 Kontrolní otázky 13 5 Kontrolní otázky Jaký je rozdíl mezi redukcí a prefixovou redukcí? Uved te alespoň 3 příklady implementace paralelní redukce na různých typech paralelních systému Uved te alespoň 3 příklady implementace paralelní prefixové redukce na různých typech paralelních systému Jaký je princip segmentové paralelní prefixové redukce? Uved te některé možné aplikace paralelní prefixové redukce
15 REFERENCE 14 Reference [1] Pavel Tvrdík Paralelní systémy a algoritmy Vydavatelství ČVUT, Praha, 2005
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íceZá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ícePARALELNÍ 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é
VíceOperace 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á
VíceVyhledá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íceAlgoritmizace 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íceAlgoritmizace 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íceIB109 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ícePříklady paralelních algoritmů
Příklady paralelních algoritmů Studijní materiál Michal Černý, katedra ekonometrie, VŠE Praha 0. Úvod 0.1. Řada problémů může být řešena velmi efektivně, máme-li k disposici počítač, který disponuje více
VíceStromy, 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íceVyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.
Vyhledávání 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) Vyhledávání 201 / 344 Osnova přednášky
VíceAlgoritmy 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íceParalelní 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
VícePrincip 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íceDobSort. Úvod do programování. DobSort Implementace 1/3. DobSort Implementace 2/3. DobSort - Příklad. DobSort Implementace 3/3
DobSort Ú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 V roce 1980 navrhl Dobosiewicz variantu (tzv. DobSort),
VíceDynamické 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íceIntervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti.
Intervalové stromy Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme průběžně provádět tyto dvě operace: 1. Změna jednoho čísla v posloupnosti. 2. Zjištění součtu čísel
VíceArchitektura 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íceVektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace
Vektory a matice Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Vektory Základní pojmy a operace Lineární závislost a nezávislost vektorů 2 Matice Základní pojmy, druhy matic Operace s maticemi
VíceIB109 Návrh a implementace paralelních systémů. Kolektivní komunikační primitava. RNDr. Jiří Barnat, Ph.D.
IB109 Návrh a implementace paralelních systémů Kolektivní komunikační primitava RNDr. Jiří Barnat, Ph.D. Kvantitativní parametry komunikace B109 Návrh a implementace paralelních systémů: Kolektivní komunikační
VíceV 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íceZá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íceIB108 Sada 1, Příklad 1 Vypracovali: Tomáš Krajča (255676), Martin Milata (256615)
IB108 Sada 1, Příklad 1 ( ) Složitost třídícího algoritmu 1/-Sort je v O n log O (n.71 ). Necht n = j i (velikost pole, které je vstupním parametrem funkce 1/-Sort). Lehce spočítáme, že velikost pole předávaná
VíceTest 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ícePokroč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íceNPRG030 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íceZavedení a vlastnosti reálných čísel
Zavedení a vlastnosti reálných čísel jsou základním kamenem matematické analýzy. Konstrukce reálných čísel sice není náplní matematické analýzy, ale množina reálných čísel R je pro matematickou analýzu
VíceSlož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íceArchitektura 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 2/36 Digitální
VíceAlgoritmus 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íceZadání druhého zápočtového projektu Základy algoritmizace, 2005
Zadání druhého zápočtového projektu Základy algoritmizace, 2005 Jiří Dvorský 2 května 2006 Obecné pokyny Celkem je k dispozici 8 zadání příkladů Každý student obdrží jedno zadání Vzhledem k tomu, že odpadly
VíceAlgoritmizace a programování
Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech
VícePř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íceAlgoritmizace ř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íceParalelní 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
VíceRekurzivní 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Č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íce0.1 Úvod do lineární algebry
Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Lineární rovnice o 2 neznámých Definice 011 Lineární rovnice o dvou neznámých x, y je rovnice, která může být vyjádřena ve tvaru ax + by = c, kde
VíceDefinice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují
Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují 1. u + v = v + u, u, v V 2. (u + v) + w = u + (v + w),
VíceOperač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íceParalelní 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íceZimní semestr akademického roku 2014/ prosince 2014
Cvičení k předmětu BI-ZMA Tomáš Kalvoda Katedra aplikované matematiky FIT ČVUT Matěj Tušek Katedra matematiky FJFI ČVUT Obsah Cvičení Zimní semestr akademického roku 014/015. prosince 014 Předmluva iii
VíceMaticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:
3 Maticový počet 3.1 Zavedení pojmu matice Maticí typu (m, n, kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru: a 11 a 12... a 1k... a 1n a 21 a 22...
VíceOperace s maticemi. 19. února 2018
Operace s maticemi Přednáška druhá 19. února 2018 Obsah 1 Operace s maticemi 2 Hodnost matice (opakování) 3 Regulární matice 4 Inverzní matice 5 Determinant matice Matice Definice (Matice). Reálná matice
VíceV předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti
Kapitola 5 Vektorové prostory V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti operací sčítání a násobení
Více0.1 Úvod do lineární algebry
Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Vektory Definice 011 Vektorem aritmetického prostorur n budeme rozumět uspořádanou n-tici reálných čísel x 1, x 2,, x n Definice 012 Definice sčítání
VíceNá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Číselné vyjádření hodnoty. Kolik váží hrouda zlata?
Čísla a logika Číselné vyjádření hodnoty Au Kolik váží hrouda zlata? Dekadické vážení Když přidám osmé závaží g, váha se převáží => závaží zase odeberu a začnu přidávat závaží x menší 7 závaží g 2 závaží
VíceStrojový 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íce3. ú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ícebin 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
VíceMĚŘENÍ A ANALÝZA ELEKTROAKUSTICKÝCH SOUSTAV NA MODELECH. Petr Kopecký ČVUT, Fakulta elektrotechnická, Katedra Radioelektroniky
MĚŘENÍ A ANALÝZA ELEKTROAKUSTICKÝCH SOUSTAV NA MODELECH Petr Kopecký ČVUT, Fakulta elektrotechnická, Katedra Radioelektroniky Při návrhu elektroakustických soustav, ale i jiných systémů, je vhodné nejprve
VíceALGEBRA. Téma 5: Vektorové prostory
SLEZSKÁ UNIVERZITA V OPAVĚ Matematický ústav v Opavě Na Rybníčku 1, 746 01 Opava, tel. (553) 684 611 DENNÍ STUDIUM Téma 5: Vektorové prostory Základní pojmy Vektorový prostor nad polem P, reálný (komplexní)
Více1. 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íceSČÍTAČKA, LOGICKÉ OBVODY ÚVOD TEORIE
SČÍTAČKA, LOGICKÉ OBVODY ÚVOD Konzultanti: Peter Žilavý, Jindra Vypracovali: Petr Koupý, Martin Pokorný Datum: 12.7.2006 Naším úkolem bylo sestrojit pomocí logických obvodů (tzv. hradel) jednoduchou 4
VíceKTE/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íceLineární algebra Operace s vektory a maticemi
Lineární algebra Operace s vektory a maticemi Robert Mařík 26. září 2008 Obsah Operace s řádkovými vektory..................... 3 Operace se sloupcovými vektory................... 12 Matice..................................
VíceZákladní pojmy teorie množin Vektorové prostory
Základní pojmy teorie množin Přednáška MATEMATIKA č. 1 Katedra ekonometrie FEM UO Brno kancelář 69a, tel. 973 442029 email:jiri.neubauer@unob.cz 7. 10. 2010 Základní pojmy teorie množin Základní pojmy
Více4. Ú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íceGrafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.
Grafy doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB TUO) Grafy 104 / 309 Osnova přednášky Grafy
Více1 Vektorové prostory.
1 Vektorové prostory DefiniceMnožinu V, jejíž prvky budeme označovat a, b, c, z, budeme nazývat vektorovým prostorem právě tehdy, když budou splněny následující podmínky: 1 Je dáno zobrazení V V V, které
VíceSysté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íceBiná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
Více[1] samoopravné kódy: terminologie, princip
[1] Úvod do kódování samoopravné kódy: terminologie, princip blokové lineární kódy Hammingův kód Samoopravné kódy, k čemu to je [2] Data jsou uložena (nebo posílána do linky) kodérem podle určitého pravidla
VíceDigitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.
Digitální obvody Doc. Ing. Lukáš Fujcik, Ph.D. Základní invertor v technologii CMOS dva tranzistory: T1 vodivostní kanál typ N T2 vodivostní kanál typ P při u VST = H nebo L je klidový proud velmi malý
VíceParalelní 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
VíceParalení 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
VíceBáze a dimenze vektorových prostorů
Báze a dimenze vektorových prostorů Buď (V, +, ) vektorový prostor nad tělesem (T, +, ). Nechť u 1, u 2,..., u n je konečná posloupnost vektorů z V. Existují-li prvky s 1, s 2,..., s n T, z nichž alespoň
Více5. Sekvenční logické obvody
5. Sekvenční logické obvody 3. Sekvenční logické obvody - úvod Sledujme chování jednoduchého logického obvodu se zpětnou vazbou 3. Sekvenční logické obvody - příklad asynchronního sekvenčního obvodu 3.
VíceMatice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n
[1] Základní pojmy [2] Matice mezi sebou sčítáme a násobíme konstantou (lineární prostor) měníme je na jiné matice eliminační metodou násobíme je mezi sebou... Matice je tabulka čísel s konečným počtem
VíceMichal 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ícePohled 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íce5 Orientované grafy, Toky v sítích
Petr Hliněný, FI MU Brno, 205 / 9 FI: IB000: Toky v sítích 5 Orientované grafy, Toky v sítích Nyní se budeme zabývat typem sít ových úloh, ve kterých není podstatná délka hran a spojení, nýbž jejich propustnost
Více(Cramerovo pravidlo, determinanty, inverzní matice)
KMA/MAT1 Přednáška a cvičení, Lineární algebra 2 Řešení soustav lineárních rovnic se čtvercovou maticí soustavy (Cramerovo pravidlo, determinanty, inverzní matice) 16 a 21 října 2014 V dnešní přednášce
VíceCílem této kapitoly je uvedení pojmu matice a jejich speciálních typů. Čtenář se seznámí se základními vlastnostmi matic a s operacemi s maticemi
2.2. Cíle Cílem této kapitoly je uvedení pojmu matice a jejich speciálních typů. Čtenář se seznámí se základními vlastnostmi matic a s operacemi s maticemi Předpokládané znalosti Předpokladem zvládnutí
VíceParalelní 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
VíceKOMBINAČNÍ LOGICKÉ OBVODY
Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/03.0009 KOMBINAČNÍ LOGICKÉ OBVODY U těchto obvodů je vstup určen jen výhradně kombinací vstupních veličin. Hodnoty
VíceZá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íce5. Paralelní sčítání, bitonické třídění(zapsal: Petr Jankovský)
5. Paralelní sčítání, bitonické třídění(zapsal: Petr Jankovský) Minule jsme si zavedli paralelní výpočetní model, ve kterém si nyní něco naprogramujeme... Sčítání binárních čísel Mějme dvě čísla x a y
Vícepřirozený algoritmus seřadí prvky 1,3,2,8,9,7 a prvky 4,5,6 nechává Metody řazení se dělí:
Metody řazení ve vnitřní a vnější paměti. Algoritmy řazení výběrem, vkládáním a zaměňováním. Heapsort, Shell-sort, Radix-sort, Quicksort. Řazení sekvenčních souborů. Řazení souborů s přímým přístupem.
VíceČasová složitost algoritmů
Časová složitost algoritmů Důležitou vlastností algoritmu je časová náročnost výpočtů provedené podle daného algoritmu Ta se nezískává měřením doby výpočtu pro různá data, ale analýzou algoritmu, jejímž
VíceNá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
VíceOperace s maticemi
Operace s maticemi Seminář druhý 17.10. 2018 Obsah 1 Operace s maticemi 2 Hodnost matice 3 Regulární matice 4 Inverzní matice Matice Definice (Matice). Reálná matice typu m n je obdélníkové schema A =
VíceMimo samotné správnosti výsledku vypočteného zapsaným algoritmem je ještě jedno
12 Délka výpočtu algoritmu Mimo samotné správnosti výsledku vypočteného zapsaným algoritmem je ještě jedno neméně důležité hledisko k posouzení vhodnosti algoritmu k řešení zadané úlohy. Jedná se o čas,
Více13. Třídící algoritmy a násobení matic
13. Třídící algoritmy a násobení matic Minulou přednášku jsme probírali QuickSort, jeden z historicky prvních třídících algoritmů, které překonaly kvadratickou složitost aspoň v průměrném případě. Proč
VíceMatice. a m1 a m2... a mn
Matice Nechť (R, +, ) je okruh a nechť m, n jsou přirozená čísla Matice typu m/n nad okruhem (R, +, ) vznikne, když libovolných m n prvků z R naskládáme do obdélníkového schematu o m řádcích a n sloupcích
VíceArnoldiho a Lanczosova metoda
Arnoldiho a Lanczosova metoda 1 Částečný problém vlastních čísel Ne vždy je potřeba (a někdy to není ani technicky možné) nalézt celé spektrum dané matice (velké řídké matice). Úloze, ve které chceme aproximovat
VíceMatematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic
Přednáška třetí (a pravděpodobně i čtvrtá) aneb Úvod do lineární algebry Matice a soustavy rovnic Lineární rovnice o 2 neznámých Lineární rovnice o 2 neznámých Lineární rovnice o dvou neznámých x, y je
VíceZákladní operace. Prefix sum. Segmentovaný prefix-sum
Základní operace Paralelní redukce Paralelní redukce na architekturách se sdílenou pamětí Paralelní redukce na architekturách s distribuovanou pamětí Paralelní redukce na GPU v CUDA Prefix sum Segmentovaný
VíceV kompletním grafu nenastává problém. Každý uzel je soused se zbytkem vrcholů a může s nimi kdykoliv komunikovat.
1 SMĚROVÁNÍ (ROUTING) V kompletním grafu nenastává problém. Každý uzel je soused se zbytkem vrcholů a může s nimi kdykoliv komunikovat. Problém nastává u ostatních grafů: Kritéria dobrého směrování: a)
VíceIB111 Úvod do programování skrze Python
Vyhledávání, řazení, složitost IB111 Úvod do programování skrze Python 2012 Otrávené studny 8 studen, jedna z nich je otrávená laboratorní rozbor dokáže rozpoznat přítomnost jedu ve vodě je drahý (je časově
VíceII. Úlohy na vložené cykly a podprogramy
II. Úlohy na vložené cykly a podprogramy Společné zadání pro příklady 1. - 10. začíná jednou ze dvou možností popisu vstupních dat. Je dána posloupnost (neboli řada) N reálných (resp. celočíselných) hodnot.
VíceDigitá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_148_IVT Autor: Ing. Pavel Bezděk Tematický okruh:
VíceTestování prvočíselnosti
Dokumentace zápočtového programu z Programování II (NPRG031) Testování prvočíselnosti David Pěgřímek http://davpe.net Úvodem V různých oborech (například v kryptografii) je potřeba zjistit, zda je číslo
VíceVektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice
Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice Vektorové podprostory K množina reálných nebo komplexních čísel, U vektorový prostor nad K. Lineární kombinace vektorů u 1, u 2,...,u
VíceZadání semestrálního projektu Algoritmy II. letní semestr 2017/2018
Zadání semestrálního projektu Algoritmy II. letní semestr 2017/2018 doc. Mgr. Jiří Dvorský, Ph.D. Verze zadání 6. dubna 2018 První verze Obecné pokyny 1. Celkem jsou k dispozici tři zadání příkladů. 2.
VíceVyvaž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íceAlgoritmizace a programování
Algoritmizace a programování Vyhledávání, vkládání, odstraňování Vyhledání hodnoty v nesetříděném poli Vyhledání hodnoty v setříděném poli Odstranění hodnoty z pole Vkládání hodnoty do pole Verze pro akademický
VíceAnotace. Informace o praktiku z programování!!! Direktivy překladače Soubory (textové) Quicksort Metoda rozděl a panuj
Anotace Informace o praktiku z programování!!! Direktivy překladače Soubory (textové) Quicksort Metoda rozděl a panuj Direktivy překladače Překladač kontroluje plno věcí, například: zda nekoukáme za konec
VíceInovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09
Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Operátory Autor:
Více