Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
PPA P 07
2
Obsah Návrh paralelních algoritmů Projekty
3
Návrh paralelních algoritmů Úkol – převést sekvenční algoritmus do paralelní formy – Může vyžadovat velmi rozdílný pohled na věc – Paralelní řešení „podstatně“ jiné než sekvenční (sorting networks) Fáze návrhu – Konceptuální Rozdělené na paralelní tasky (decomposition) Koordinace, analýza komunikace (coordination) – Implementační Aglomerace (vzhledem k použité platformě) Mapování tasku na jádro
4
Dekompozice Rozdělení problému na paralelní tasky – Aby bylo možno využít paralelního prostředí – Datová vs. funkční dekompozice Datová dekompozice – Aka doménová dekompozice, cílem je data paralelní řešení Rozdělit data na části, definovat tasky, které budou probíhat nad daty
5
Dekompozice (2) Funkční dekompozice – Rozděluje primárně problém na paralelní (nepřekrývající se) úkoly Potom odpovídajícím způsobem rozdělíme data – Současné zpracování nezávislých funkcí – Současné zpracování streamů dat – Problém: počet prováděných úkonů často neroste s rostoucí dimenzí problému Vhodnost dekompozice – Řádově více tasků než procesorů – Bez redundance – Přibližně stejná velikost tasků – Počet tasků roste s velikostí problému
6
Komunikace Definice komunikačních toků mezi paralelními tasky – Jednotlivé paralelní tasky (odpovídající particím) komunikují – Komunikace je nežádoucí overhead, snaha ji minimalizovat – Typy komunikace Lokální vs. globální Strukturovaná vs. nestrukturovaná Statická vs. dynamická Synchronní vs. asynchronní
7
Dekompozice (2) Vhodná komunikace – Tasky mají podobné komunikační patterny – Komunikují jen s malým počtem sousedů (=lokální k.) – Komunikační operace mohou probíhat paralelně – Komunikace a výpočty mohou probíhat paralelně Viz. např. CUDA
8
Aglomerace Kompozice particí (a tasků a komunikace) vzhledem ke zvolené platformě – Možnost kompozice (serializace) více konceptuálních tasků Granularita – Velké množství izolovaných tasků (fine grained) může být neefektivní (silná komunikace) Méně komunikace, větší zprávy Méně procesů – Povrch vs. objem Komunikace odpovídá „povrchu“ dané části problému Výpočet odpovídá „objemu“ Čím větší task, tím výhodnější poměr výpočet/komunikace Těžké navrhnout, problémy s ad-hoc (nestrukturovanou) komunikací – Replikace výpočtu Stejné výpočty na více jádrech, distribuce výsledku v okolí – Zamezení komunikaci Důsledná aglomerace operací, které nemohou probíhat paralelně
9
Aglomerace (2) Flexibilita – Důležitá pro přenositelnost řešení, škálovatelnost atd. – Dobré řešení je flexibilní, tzn. dokáže se přizpůsobit momentálním podmínkám – Zpravidla 1 task na 1 jádro Nebo více tasků v případě, že očekáváme překrytí výpočtů a komunikace – 1 čeká na data, druhý zaměstnává procesor – Vhodný počet tasků Vychází z možností dané platformy, analytického modelování a studií problému Ovlivňování za compile time a runtime Vhodná aglomerace – Vede k navýšení lokality – Bere v úvahu replikaci výpočtů – Agreguje tasky tak, aby měly podobné výpočetní a komunikační požadavky – Zpravidla méně rozsáhlejších tasků má větší efektivitu než více menších
10
Mapování Kde (na kterém procesoru) který task provést – Symetrické muptiprocesory – automatické plánování tasků – Distribuované systémy – složitější Sofistikované schedulery, zvažování během návrhu – Cíl: minimalizace doby výpočtu Prostředky: paralelní tasky na různá jádra (procesory) Často komunikující tasky na jedno jádro (procesor) – Prostředkem je vysoká konkurence a vysoká lokalita výpočtů zároveň Mapování sady tasků na sadu procesorů – Různé varianty – Problém kombinatorické optimalizace – NP úplný problém – Heuristiky a metaheuristiky
11
Mapování (2) Heuristiky pro zvláštní případy – Doménová dekompozice (DD), pevný počet podobných tasků, strukturovaná komunikace Minimalizivat IPC, aglomerované tasky na stejný proc. – DD, proměnná délka tasku, nestrukturovaná kom. Load balancing; overhead load balancingu musí být menší než zisk – DD, různý počet tasků, dynamické změny komunikace / práce na task Dynamický load balancing (zahrnuje změny mapování, ale i aglomerace ) Preference lokálních algoritmů – Funkční dekompozice Plánování (nezávislých) tasků - (Independent) task scheduling
12
Mapování (3) Load balancing – Vyvážení zátěže. Metody: Rekurzivní bisekce – Rozdělení do domén s obdobnou výpočetní zátěží – Bisekce podle polohy » Nepravidelné gridy s lokální komunikací, rozdělení podle polohy, vždy rozděluje podle větší dimenze » Jednoduché, ale ne příliš optimální (komunikace) – Grafová bisekce » Založená na grafech konektivity » Rozděluje podle vzdálenosti v grafu
13
Mapování (4) Load balancing – Vyvážení zátěže. Metody: Pravděpodobnostní metody – Přiřazuje tasky náhodně vybraným procesorům (uniformní distr. pravděpodobnosti) – Nenáročné, dobře funkční s rostoucí dimenzí – Cyklické mapování » Každý z p procesorů je alokován každý p-tý task Lokální algoritmy – Bez znalosti systému jako celku, jen info od sousedů – Výpočet je přidělen nejméně vytíženému sousedovi – Méně drahé než globální metody – Méně efektivní, pomalejší reakce na globální změny
14
Mapování (5) Plánování tasků – Vhodné pro případy, kdy máme mnoho málo závislých tasků – Manager/worker Workeři žádají o problémy k vyřešení (nebo generují nové) Manager může být úzké hrdlo – Decentralizovaná schémata Bez centrálního managera Distribuovaný sdílený task pool Problémy s detekcí ukončení, volných zdrojů
15
Mapování (5) Plánování tasků – Plánování nezávislých tasků T={T1, …, Tn}M={M1, …, Mm} Bez závislostí, preempce, NP úplný problém Snaha optimalizovat flowtime, makespan (výpočet celého meta-tasku) Předpoklad znalosti ETC Řada heuristik – min-min – max-min – LJFR-SJFR – Sufferage – WorkQueue
16
Mapování (6) Plánování tasků – Plánování nezávislých tasků Dobře fungují i metaheuristiky – Genetické algoritmy – Diferenciální evoluce Dobré mapování – Vybalancování (konfliktních) požadavků pro dobrou distribuci, malou komunikaci
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.