Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

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

Podobné prezentace


Prezentace na téma: "Paralelizace algoritmu. Single Instruction, Single Data stream (SISD) „tupé“ procesory Single Instruction, Multiple Data streams (SIMD) maticové procesory."— Transkript prezentace:

1 Paralelizace algoritmu

2 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

3 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

4 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

5 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

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

7 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

8 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

9

10 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

11 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

12 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

13 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šší

14 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

15 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

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

17 ú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í

18 č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é

19 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

20 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

21 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é

22 ú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é

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

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

25


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

Podobné prezentace


Reklamy Google