paraleln programov n
Download
Skip this Video
Download Presentation
Paralelní programování

Loading in 2 Seconds...

play fullscreen
1 / 13

Paralelní programování - PowerPoint PPT Presentation


  • 87 Views
  • Uploaded on

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ů

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Paralelní programování' - jela


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