160 likes | 277 Views
PPA. C 07. Obsah. Plánování nezávislých tasků h omel.vsb.cz/ ~kro080/ ppa /07/data Najděte (co nejrychleji) co nejlepší řešení. 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
E N D
PPA C07
Obsah • Plánování nezávislých tasků • homel.vsb.cz/~kro080/ppa/07/data • Najděte (co nejrychleji) co nejlepší řešení
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í • (sortingnetworks) • 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
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
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
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í
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
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ě
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 compiletime 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
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
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. • Loadbalancing; overhead load balancingumusí být menší než zisk • DD, různý počet tasků, dynamické změny komunikace / práce na task • Dynamický loadbalancing (zahrnuje změny mapování, ale i aglomerace ) • Preference lokálních algoritmů • Funkční dekompozice • Plánování (nezávislých) tasků - (Independent) taskscheduling
Mapování (3) • Loadbalancing • Vyvážení zátěže. Metody: • Rekurzivní bisekce • Rozdělení do domén s obdobnou výpočetní zátěží • Bisekce podle polohy • Nepravidelné gridys 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
Mapování (4) • Loadbalancing • 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
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ů
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
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