Paraleln programov n
This presentation is the property of its rightful owner.
Sponsored Links
1 / 13

Paralelní programování PowerPoint PPT Presentation


  • 72 Views
  • Uploaded on
  • Presentation posted in: General

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ů

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Paraleln programov n

Paralelní programování

Inspirace


Bucket sort

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


Bucket sort sekven n

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:


Bucket sort paraleln

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


Quicksort

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é


Rozd l a panuj

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í


Vyplat se to

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á


P klad

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


P klad 2

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


P klad 21

Příklad 2

  • kroky1 a 3

  • Časová složitost –

  • Komunikační složitost –

  • Celková časová složitost –


  • V sledek

    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)


    Zas l n zpr v

    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


    Zas l n zpr v1

    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


  • Login