Paralelizace algoritmu. Single Instruction, Single Data stream (SISD) „tupé“ procesory Single Instruction, Multiple Data streams (SIMD) maticové procesory.

Slides:



Advertisements
Podobné prezentace
LOGISTICKÉ SYSTÉMY 14/15.
Advertisements

Paralelní výpočet SVD s aplikacemi pro vyhledávání informací
Elektrické obvody – základní analýza
Vymezení předmětu statika, základní pojmy, síla, moment síly k bodu a ose Radek Vlach Ústav mechaniky těles,mechatroniky a biomechaniky FSI VUT Brno Tel.:
Dualita úloh lineárního programování a analýza citlivosti
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
Databázové systémy Přednáška č. 3 Proces návrhu databáze.
Dynamické programování Programovací technika pro řešení takových optimalizačních úloh, u nichž platí, že úloha se dá rozložit na menší podúlohy, z jejichž.
Úvod Klasifikace disciplín operačního výzkumu
Statické systémy.
Plošná interpolace (aproximace)
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Otázky k absolutoriu HW 1 - 5
Principy překladačů Mezikód Jakub Yaghob.
hierarchie pamětí vyrovnávací paměť režimy práce procesoru
Úvod. Základní úrovně: hardwarová (procesory, jádra) programová (procesy, vlákna) algoritmická (uf... ) Motivace: zvýšení výkonu redundance jiné cíle,
Historie počítačových sítí a jejich postupný vývoj
Principy překladačů Vysokoúrovňové optimalizace Jakub Yaghob.
Principy překladačů Architektury procesorů Jakub Yaghob.
ADT Strom.
Lineární programování Simplexový algoritmus
Matematické metody v ekonomice a řízení II
Řadicí algoritmy autor: Tadeáš Berkman.
Výhody užití architektury ITS ve veřejné osobní dopravě
TI 7.1 NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6. TI 7.2 Nejkratší cesty z jednoho uzlu Seznámíme se s následujícími pojmy: w-vzdálenost (vzdálenost na.
Teoretická informatika Tomáš Foltýnek Paralelní programování.
PPA P 07. Obsah Návrh paralelních algoritmů Projekty.
Modely konzistentnosti Ladislav Kotal PDS 2008Ladislav Kotal2 Konzistentnost Konzistentní = soudržný, neporušený, pevný Konzistenční model = dohoda.
David Rozlílek ME4B. Co jsou to paměti ? slouží k uložení programu, kteý řídí ? Slouží k ukládaní…..?.... a ……? operací v.
Sémantická analýza Jakub Yaghob
Algoritmy vyhledávání a řazení
Výrok „Počítač je pouze tak inteligentní jako jeho uživatel.“ (Radek Lochman, dnes)
Databázové systémy Architektury DBS.
Informatika pro ekonomy II přednáška 10
Pokročilé architektury počítačů (PAP_10.ppt) Karel Vlček, katedra Informatiky, FEI VŠB Technická Univerzita Ostrava.
Dokumentace informačního systému
Databázové modelování
© Institut biostatistiky a analýz INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ ANALÝZA A KLASIFIKACE DAT prof. Ing. Jiří Holčík, CSc.
Distribuovaná sdílená paměť Přednášky z Distribuovaných systémů Ing. Jiří Ledvina, CSc.
Karel Vlček, Modelování a simulace Karel Vlček,
Rozhodovací proces, podpory rozhodovacích procesů
ŘÍZENÍ DOPRAVY POMOCÍ SW AGENTŮ Richard Lipka, DSS
Výrok „Vypadá to, že jsme narazili na hranici toho, čeho je možné dosáhnout s počítačovými technologiemi. Člověk by si ale měl dávat pozor na takováto.
Programování POCSI. Programovani/POCSI2 Základní pojmy Akce - děj nad objekty, mající začátek a konec, a mající přesně definovaný účinek. Příkaz - popis.
Pokročilé architektury počítačů (PAP_06.ppt) Karel Vlček, katedra Informatiky, FEI VŠB Technická Univerzita Ostrava.
Počítačové sítě Terezie Gřundělová Historie Vznik a vývoj je spjat s rozvojem počítačů a výpočetní techniky První rozmach v padesátých letech.
Prostorové datové struktury
Vyhledávání vzorů (template matching)
Pokročilé architektury počítačů (PAP_05.ppt)
SIGNÁLY A LINEÁRNÍ SYSTÉMY
Algoritmy a struktury neuropočítačů ASN - P14 Hopfieldovy sítě Asociativní paměti rekonstrukce původních nezkreslených vzorů předkládají se neúplné nebo.
11/2003Přednáška č. 41 Regulace výpočtu modelu Předmět: Modelování v řízení MR 11 (Počítačová podpora) Obor C, Modul M8 ZS, 2003, K126 EKO Předn./Cvič.:
Návrh a implementace algoritmů pro údržbu,
Informatika (1) Počítač - základní pojmy HW a SW4 OS MS-DOS, Windows 95, 982 Org. souborů na disku, operační paměť2 Aplikace Malování, Word8 Základy programování.
SVAZEK NEDEDIKOVANÝCH PRACOVNÍCH STANIC NA BÁZI OS LINUX DANIEL LANGR DIPLOMOVÁ PRÁCE 2004.
Multiprocesorové systémy. Multiprocesorové systémy vznikly z důvodu zvýšení výkonnosti počítačů, protože jednoprocesorové systémy svým výkonem již přestaly.
Překladače Optimalizace © Milan Keršláger
EMM21 Ekonomicko-matematické metody 2 Prof. RNDr. Jaroslav Ramík,CSc.
Vypracoval / Roman Málek
Ing. Milan Houška KOSA PEF ČZU v Praze
Znázornění dopravní sítě grafem a kostra grafu Předmět: Teorie dopravy - cvičení Ing. František Lachnit, Ph.D.
Operační systémy 9. Spolupráce mezi procesy
ANALÝZA A KLASIFIKACE DAT
Informatika pro ekonomy přednáška 8
1. ročník oboru Mechanik opravář motorových vozidel
hierarchie pamětí vyrovnávací paměť režimy práce procesoru
Přednášky z distribuovaných systémů
ANALÝZA A KLASIFIKACE DAT
Přednášky z Distribuovaných systémů
ANALÝZA A KLASIFIKACE DAT
Transkript prezentace:

Paralelizace algoritmu

Single Instruction, Single Data stream (SISD) „tupé“ procesory Single Instruction, Multiple Data streams (SIMD) maticové procesory Multiple Instruction, Single Data stream (MISD) Multiple Instruction, Multiple Data streams (MIMD) běžné procesory distribuované systémy

Systémy se sdílenou pamětí Symetrické – symmetric multiprocessors (SMP) úzkým hrdlem je paměťová sběrnice běžné počítače Nesymetrické – non-uniform memory access (NUMA) paměť je sdílená, ale rozdělená na segmenty – některé jsou blíž a jiné dál princip programování stejný nutné vyhnout se vzdáleným přesunům dat optimálně využívat cache běžné superpočítače

Systémy s distribuovanou pamětí MPP – Massively parallel processors superpočítače Gridy heterogenní clustery nemají centrální bod správy hybridní systémy clustery výpočetních jednotek se sdílenou pamětí superpočítače Clustery homogenní (nebo homogenizované) samostatné výpočetní jednotky

paralelizace algoritmická paralelizace programová zasílaní zpráv management a synchronizace procesů/vláken distribuce dat paralelizace na úrovni kompilátoru direktivy označující paralelní kód

Hledání souběžnosti Návrh/úprava algoritmu Datové a programové struktury Implementace Hledání souběžnosti má vůbec smysl se snažit? co je nejnáročnější? – na co je nutné se zaměřit?

Dekompozice Dekompozice úlohy Dekompozice dat jiný pohled na tutéž věc udělat se musí obojí Analýza a zpracování závislostí Seskupení úloh Určení pořadí Sdílení dat Kontrola

Flexibilita dekompozice by se neměla omezovat na jednu architekturu regulace počtu úloh Efektivita musí dojít ke snížení nároků na paměť nebo čas úloha musí obsahovat dost práce musí být dost úloh, vztah k HW Jednoduchost umožnit ladění a údržbu použití původního sekvenčního kódu

raytracing, CT – medicína i průmysl paprsek vychází ze zdroje a prochází prostředím dochází ke změnám (pohlcení, odrazy, rozptyl) dekompozice každá úloha představuje jeden paprsek jsou skoro nezávislé každý paprsek má k dispozici celé prostředí problém pro distribuovanou architekturu

graf – síť (strom) jednotek vrcholy grafu (molekuly, osoby, auta, …) hrany grafu (vazby, bezpečné vzdálenosti, …) simulace hromadných procesů, metoda KP chování prvku je ovlivněno chováním okolí (prahování) dekompozice úloha pro určení okolních „sil“ na prvek úloha je špatně izolovaná dají se rozlišovat různé druhy sil

identifikace nejnáročnějších částí – práce s největšími objemy dat identifikace nezávislých částí rozklad na segmenty na hranicích segmentů musí docházet k synchronizaci výpočty využívající: pole (matice) – řádky, sloupce, oblasti seznamy, sítě (rekurzivní struktury) – nějaká část

Flexibilita velikost a počet datových jednotek by měl být proměnný a nastavitelný zrnitost (granularity) rozhodující je vliv režie řešení závislostí a manipulace s daty Efektivita jednotky musí být dost a rovnoměrně velké Jednoduchost způsob rozdělení (indexace) globálních dat na jednotky by měl být co nejjednodušší

násobení matic rozdělení na řádky skupiny řádků výsledné matice celá druhá matice mnoho operací čtení, pokud celá matice nevejde do paměti rozložení na bloky

raytracing rozdělení definice prostředí rozdělení na segmenty každá výpočetní jednotka počítá paprsky procházející segmentem na hranici segmentů se synchronizuje se sousedními jednotkami úspora paměti časový problém

graf místo vrcholů a vazeb použijeme: pole souřadnic pole silových vektorů pole sousedů … redukce na maticovou dekompozici

úlohy se stejnými omezeními lze seskupit výpočet prvku matice výpočet polohy buňky výpočet sil působících na buňku … pracujeme jen s omezeným počtem úloh zjednodušení

časová následnost A musí počkat na data z B A musí počkat alespoň na nějaká data z B časová souběžnost A musí počkat na data ze svého okolí okolí se musí provádět souběžně nezávislost – stojí za zaznamenání seřazení úloh musí být úplné abychom se vyhnuli race-condition seřazení úloh nesmí být nadbytečné

způsob sdílení data lokální pro úlohu data globální – sdílená data lokálně sdílená řešení data lokální data pouze pro čtení data pro čtení a zápis akumulace, lineární kombinace, asociativní písař a čtenáři

máme cílovou architekturu? „běžný“ procesor × distribuovaná architektura kolik můžeme teoreticky vyrobit výpočetních jednotek? příklad matice kolik můžeme vyrobit datových segmentů? je možné zátěž rozložit? jaké jsou limitní případy? KISS

paralelizace je orientovaná na úlohy nezávislé (lineární) – Paralelizace úloh závislé (rekurzivní) – Rozděl a panuj paralelizace orientovaná na data nezávislé segmenty – Geometrická dekompozice závislé segmenty – Rekurzivní data paralelizace orientovaná na tok dat řízené statickým tokem dat – Pipeline dynamický tok dat – Událostmi řízené

úlohy jsou maximálně nezávislé a obyčejně statické úlohy se mohou provádět souběžně úloh by mělo být více než výpočetních jednotek ale měly by být dost velké

závislosti žádné pouze mezi skupinami – nezajímavé odstranitelné závislosti – falešné globální proměnné, DB separovatelné závislosti – cykly s asociativními binárními operacemi lze redukovat plánování statické (známé dopředu, přeplněné) × dynamické (work queue, work stealing)

paralelní v cyklu direktiva kompilátoru složitější kód master/worker (dynamický plánovač) single program, multiple data (SPMD)