1 / 25

Paralelní programování

Paralelní programování. Úvod. Paralelismus. Základní úrovně: hardwarová (procesory, jádra) programová (procesy, vlákna) algoritmická (uf... ) Motivace: zvýšení výkonu redundance jiné cíle, ale podobné nástroje a problémy. Proč zvyšovat výkon?. Moorův zákon:

kasia
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í Úvod

  2. Paralelismus • Základní úrovně: • hardwarová (procesory, jádra) • programová (procesy, vlákna) • algoritmická (uf... ) • Motivace: • zvýšení výkonu • redundance • jiné cíle, ale podobné nástroje a problémy

  3. Proč zvyšovat výkon? • Moorův zákon: • „... Počet tranzistorů/komponent, které lze levně integrovat se zdvojnásobí každý rok...“ • 12 měsíců (1965) • 18 měsíců (≈ 1985) • 24 měsíců (≈2005) • ? • Jedná se spíš o strategii Intelu než o zákon • Dodržuje se zvyšováním počtu jader • nejsou integrované na jednom polovodiči

  4. Skutečný průběh Zdvojnásobení každých: 12 měsíců 24 měsíců

  5. Počet tranzistorů vs. výkon

  6. Počet tranzistorů vs. výkon

  7. Frekvence • Posledních 10let se drží okolo 3Ghz • Růst se neočekává • Rychlost elektronů je konečná • Tranzistory mají konečnou velikost

  8. CPU vs. GPU • multi-coremikroprocesory • zrychlování sekvenčních programů • rozsáhlé univerzální instrukční soubory • více jader: • hypertherading s dvěma a více vlákny • pipeline • many-coremikroprocesory • zvyšování propustnosti (throughput) • stovky jader, stovky vláken • zaměřeno na floating-point operace

  9. Kapacita × zpoždění • průměr 1m • délka 1200km • kapacita • 160 000 000 litrů/den • zpoždění (latency) • 12 dní • propustnost? • odezva?

  10. Terminologie • Paralelní systém – systém, ve kterém může probíhat několik procesů/činnostísoučasně • Rozlišovací úroveň • instrukce, iterace, procedura, vlákno, proces,úloha • Proces × Vlákno • vlákno – instance kódu + dat a stav zásobníku + registrů • proces – kolekce vláken, společný kód + data

  11. Terminologie • Procesor × Jádro • jádro (core) – čip + paměť + řadič vykonávající jedno vlákno • procesor – kolekce jader • multithreaded-core • multiprocesor = multicore • Abstrakce • MProcesory se sdílenou pamětí • symetrické × nesymetrické • MProcesorys distribuovanou pamětí

  12. Paralelizace – HW • Flynnova klasifikace systému • staré (1966), hrubé, ale používané • Single Instruction, Single Data stream (SISD) • Single Instruction, Multiple Data streams (SIMD) • Multiple Instruction, Single Data stream (MISD) • Multiple Single Instruction stream, Multiple Data stream (MSIMD) – několik propojených SIMD • Same Program, Multiple Data stream (SPMD) – každý procesor provádí stejný program, využívají se běžné CPU • Multiple Instruction, Multiple Data streams (MIMD)

  13. Single Instruction, Single Data • data jsou zpracovávána výhradně sériově • instrukce jsou prováděny sériově • stačí jeden CPU • řídicí jednotky • klasický vonNeumannův počítač

  14. Multiple Instruction, Single Data • jedna data jsou předávána více instrukcím • více CPU, každý zpracovává data v jiné fázi • „výrobní linka“ • umělá kategorie • není to pipelining

  15. Single Instruction, Multiple Data • Jedná instrukce se provádí na více datech • Více CPU provádí stejnou instrukci s jinými daty • Typické GPU • maticové procesory • array/matrix procesor for (int i = 0; i <= n; i++) { X[i] = Y[i] + Z[i]; }

  16. MultipleInstruction, MultipleData • Různá CPU mohou provádět různé operace • Různá CPU pracují s jinými daty • Moderní počítače • Distribuované systémy • HW virtualizace • Grid

  17. Exotický HW • Asociativní procesory • maticový procesor s HW propojovací sítí • adresace dat podle obsahu (ekvivalence, klíč, interval) • Počítače řízené daty • instrukce nemají vedlejší efekty • výstupem je vždy hodnota • průmyslový HW • ...

  18. Koncepty • Komunikace – výměna dat mezi paralelně probíhajícími procesy • Synchronizace – zaručení definované posloupnosti operací, logika procesů • Režie (overhead) paralelismu • čas spotřebovaný na komunikaci • čas spotřebovaný na synchronizaci a výměnu dat • ostatní režie (knihovny, spuštění, zastavení) • Škálovatelnost (scalability) • míra růstu výkonosti s růstem paralelismu

  19. Amdahlův zákon • – podíl programu, který nelze paralelizovat • – podíl programu, který lze paralelizovat • t – celková doba výpočtu • p – počet procesorů • Dva pohledy

  20. Amdahlův zákon Zrychlení

  21. Amdahlův zákon

  22. Možnosti paralelizace • Nízko úrovňové (fine grained) • pipelining, multithreading, a podobné vychytávky • pomáhá při běžných operacích • neřešíme • Vyšší úroveň • použití více jader/ procesorů • pod 60% zcela nezajímavé • paralelizace algoritmu • zvyšujeme • využití speciálního HW (GPU)

  23. Co musíme vyřešit • synchronizace • přístup ke sdílené paměti • různé modely • distribuce dat • distribuce instrukcí (práce) • komunikace • minimalizovat režii • použít vhodný HW • měření

  24. Předmět PP • Zápočet nebo zkouška? • Projekt • dvojice • paralelizace nějaké úlohy • téma je volné • vyhodnocení • tzn. zpracování stejné úlohy paralelně a sériově • distribuovaný výpočet nebo GPU • jednoduchý test

More Related