1 / 13

Paralelní programování

Paralelní programování. Inspirace. Bucket -sort. Algoritmus přirozeně paralelní – přirozené rozdělování, segmentace, rozkládání Předpoklady: čísla jsou ve známém intervalu nap ř. čísla jsou v cílovém intervalu rovnoměrně distribuovaná Interval se rozdělí do m stejně velkých intervalů

jela
Download Presentation

Paralelní programování

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. Paralelní programování Inspirace

  2. Bucket-sort • Algoritmus přirozeně paralelní – přirozené rozdělování, segmentace, rozkládání • Předpoklady: • čísla jsou ve známém intervalu • např. • čísla jsou v cílovém intervalu rovnoměrně distribuovaná • Interval se rozdělí do m stejně velkých intervalů • každé číslo je umístěno do správného kyblíku

  3. Bucket-sort sekvenčně • Velikost kyblíku jepři rovnoměrném rozdělení • Umístění čísla do kyblíku – jedna operace • Co s kyblíkem? • třeba quicksort – • Optimistický odhad:

  4. Bucket-sort paralelně • Pro každý kyblík použijeme jeden procesor • dobře škálovatelné • Varianty • Jeden procesor rozdělí na začátku práci • zpoždění n • Každý procesor si vybere svá čísla • nadbytečná porovnávání • Každý procesor si vybere svá čísla a vymaže je ze seznamu – blokují se • Partitioning

  5. Quicksort • Podobný • seznam se dělí podle jednoho prvku • pro druhý seznam se použije další procesor • je třeba se rozhodnout jestli ještě má smysl posílat zprávu dalšímu procesoru • seznamy nejsou stejně velké • špatná škálovatelnost • není moc vhodné

  6. Rozděl a panuj • rozdělení úlohy na pod-úlohy, které jsou řešeny nezávisle • split a merge • počet úloh je závislý na způsobu dělení a slučování • rozdělení děláme jen pokud je to účelné • úlohy jsou přibližně stejně velké • úloh je dostatek pro procesory • rozdělení nezabere více času než přímé zpracování

  7. Vyplatí se to? • Čas zaslání zprávy: • n – počet datových jednotek • – latence, zaslání prázdné zprávy • Předpokládáme stejně výkonné prvky, stejné cesty, … • BigO notace je zrádná

  8. Příklad • Startup timezaslané zprávy je 1s • Výkon procesoru je 100 GFLOPS (Intel i7) • Jedná zpráva musí generovat alespoň 100 000 FP operací! • n ≈ 23 000 • latency hiding: • nb send • parallel slackness

  9. Příklad 2 • Suma n čísel a dva procesory, jeden procesor má všechny čísla. • Postup • procesor 1 zašle n/2 čísel procesoru 2 • oba procesory spočítají sumu souběžně • procesor 2 zašle výsledky procesoru 1 • procesor 1 sečte částečné sumy do celkového výsledku • kroky 2 a4

  10. Příklad 2 • kroky1 a 3 • Časová složitost – • Komunikační složitost – • Celková časová složitost –

  11. Výsledek • Pokud je komunikační a výpočetní časová složitost stejná • algoritmus bude neefektivní • zvyšování n asi vůbec nepomůže • Časová složitost výpočtu musí být vyšší než časová složitost komunikace • Optimální rozložení • PC * NP = ST • rozdělené na n procesorů s • rozdělené na procesorů s O(1)

  12. Zasílání zpráv • Synchronní (blokující): • send(data, dest) • vrátí se až v okamžiku, kdy je zpráva celá doručena • recv(data, source) • vrátí se až v okamžiku, kdy je zpráva celá přijata • kroky: • požadavek na zaslání dat • potvrzení • zaslání dat • rendez-vous

  13. Zasílání zpráv • Asynchronní (neblokující): • send(data, dest) / post() • vrátí se až v okamžiku, kdy je zpráva uložena do bufferu • recv(data, source) • vrátí se až v okamžiku, kdy je v bufferu zpráva • kroky: • zaslání dat • počkání na data • příjem dat • producent-konzument

More Related