1 / 16

PPA

PPA. P 07. Obsah. Návrh paralelních algoritmů Projekty. 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í

Télécharger la présentation

PPA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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í • (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

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

  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. • 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

  12. 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

  13. 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

  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

More Related