NoteBookLM Notes¶
Links¶
Navigation¶
- Prednáška 1: Úvod do paralelných architektúr
- Prednáška 2: Konvergencia paralelných architektúr
- Prednáška 3: Klasifikácia počítačových architektúr
- Prednáška 4: Výkon paralelných architektúr
- Prednáška 5: Modely paralelných architektúr a ich vývoj
- Prednáška 6: Opis realizácie programu
- Prednáška 7: Charakteristické vlastnosti paralelizmu
- Prednáška 8: Prúdové spracovanie a ILP architektúry
- Prednáška 9: TLP architektúry (Thread-Level Parallelism)
- Prednáška 10: MIMD a Distribuované systémy
- Presentation PDF
Notes¶
Prednáška 1: Úvod do paralelných architektúr¶
- Definícia: Paralelný počítač je súbor procesných elementov, ktoré spolupracujú pri efektívnom riešení veľkých problémov.
- Úloha architekta: Navrhovať systémy tak, aby maximalizoval výkon a programovateľnosť v rámci limitov nákladov a technológií.
- Paralelizmus: Predstavuje kľúčovú alternatívu k zvyšovaniu taktovacej frekvencie pri zvyšovaní výkonu.
- Cieľ aplikácií: Dosiahnuť zrýchlenie (speedup), kde výkon je definovaný ako prevrátená hodnota času (1/čas).
- Trendy:
- Dnešné procesory sú viacjadrové (multicore) systémy.
- ILP (paralelizmus na úrovni inštrukcií) je užitočný, ale obmedzený.
- Hrubozrnný paralelizmus (multiprocesory) je najživotaschopnejší prístup.
- Pamäťové systémy: Paralelizmus zvyšuje kapacitu hierarchie bez zvýšenia prístupového času. Kľúčové sú techniky ako prefetch, pipeline a buffer cache.
Prednáška 2: Konvergencia paralelných architektúr¶
- Historický vývoj: Pôvodne divergentné architektúry (SIMD, zdieľaná pamäť, odovzdávanie správ) konvergujú k spoločnému rámcu.
- Programovacie modely:
- Zdieľaný adresný priestor (SAS): Každý procesor priamo adresuje ľubovoľné miesto v pamäti; komunikácia je implicitná (load/store).
- Odovzdávanie správ (Message Passing): Uzly majú privátny adresný priestor; komunikácia je explicitná (send/receive).
- Dátový paralelizmus: Operácie prebiehajú paralelne nad prvkami dátovej štruktúry.
- Architektonické koncepty:
- SMP (Symetrický multiprocesor): Všetky procesory „vidia“ celú pamäť a I/O; aplikácie môžu migrovať medzi procesormi.
- Systolické architektúry: Pole rovnakých procesných elementov (PE), ktoré orchestrujú tok dát pre vysokú priepustnosť s minimom prístupov do pamäte.
- Dataflow: Výpočet je reprezentovaný ako graf závislostí; uzly sa aktivujú dostupnosťou operandov.
- Problém „Pamäťový múr“: CPU spracúva dáta rýchlejšie, než ich stíha získavať z pamäte. Riešením je tesnejšia integrácia pamäte a procesorov.
Prednáška 3: Klasifikácia počítačových architektúr¶
- Flynnova klasifikácia:
- SISD: Single Instruction Single Data.
- SIMD: Single Instruction Multiple Data.
- MISD: Multiple Instruction Single Data.
- MIMD: Multiple Instruction Multiple Data.
- Fengova klasifikácia: Rozlišuje systémy podľa stupňa paralelizmu (sériové/paralelné spracovanie bitov a slov): WSBS, WSBP, WPBS, WPBP.
- Erlangen-ova klasifikácia (ECS): Systém opísaný trojicou
<riadene, dáta, slovo>. - Skillicorn-ova klasifikácia: Definuje 28 tried architektúr na základe počtu inštrukčných (IP) a dátových (DP) procesorov a ich prepojení.
| Typ paralelizmu | Charakteristika |
|---|---|
| Dátový | Spracovanie viacerých dát súčasne. |
| Funkčný | Riadiaci paralelizmus; súbežné vykonávanie viacerých funkcií. |
Prednáška 4: Výkon paralelných architektúr¶
- Základné metriky: Čas odozvy (vykonania), priepustnosť a zrýchlenie.
- MIPS: Milión inštrukcií za sekundu.
- Benchmarky:
- Syntetické: Napr. Dhrystone.
- Súpravy: SPEC (CINT2006, CFP2006) pre CPU, TPC pre servery.
- LINPACK: Meradlo výpočtovej sily v operáciách s plávajúcou čiarkou (FP64), používané pre rebríček TOP500.
- Amdahlov zákon: Používa sa na výpočet celkového zrýchlenia systému pri vylepšení len určitej časti výpočtu.
- Princíp lokality:
- Časová lokalita: Nedávno použité dáta sa pravdepodobne použijú znova.
- Priestorová lokalita: Dáta s blízkymi adresami sa zvyknú používať v podobnom čase.
Prednáška 5: Modely paralelných architektúr a ich vývoj¶
- Sekvenčné spracovanie: Tradičný model s programovým počítadlom; v danom okamihu sa vykonáva iba jedna inštrukcia.
- Evolučné stupne:
- Dopredné vyhľadávanie: Prekrývanie výberu inštrukcie (I) s jej dekódovaním a vykonaním (E).
- Funkčný paralelizmus: Súbežné využitie multifunkčných jednotiek.
- Prúdové spracovanie (Pipelining): Rozklad inštrukcie na dielčie fázy vykonávané súčasne pre rôzne inštrukcie.
- Vektorové procesory: Spracúvajú prúdy dát pomocou implicitne alebo explicitne definovaných vektorových operácií.
Prednáška 6: Opis realizácie programu¶
- Control-Flow (CF): Riadenie na báze príkazov; inštrukcie sa vykonávajú podľa nastavenia programového počítadla.
- Data-Driven (DF): Inštrukcie sa vykonajú hneď, ako majú k dispozícii všetky operandy (data token).
- Demand-Driven (DD): Inštrukcia sa vykoná až vtedy, keď je jej výsledok vyžadovaný inou inštrukciou (demand token).
Prednáška 7: Charakteristické vlastnosti paralelizmu¶
- Typy paralelizmu:
- Časový: Prúdové spracovanie (pipeline).
- Priestorový: N-násobne implementované komponenty.
- Údajové závislosti:
- RAW (Read After Write): Skutočná závislosť; čítanie po zápise.
- WAR (Write After Read): Antizávislosť; zápis po čítaní.
- WAW (Write After Write): Výstupná závislosť; zápis po zápise.
- Bernsteinove podmienky: Formálne definujú, kedy môžu byť dva procesy vykonané paralelne (prienik ich vstupných a výstupných množín musí byť prázdny).
- Granularita:
- Jemnozrnná: Veľa medziprocesorových komunikácií, krátke časy operácií.
- Hrubozrnná: Menej komunikácií, dlhšie časy operácií v uzloch.
- Škálovateľnosť: Schopnosť systému zvyšovať výkon s pribúdajúcimi zdrojmi; ovplyvňuje ju pracovná záťaž (P), rozmer problému (s) a strojový rozmer (n).
Prednáška 8: Prúdové spracovanie a ILP architektúry¶
- Zreťazenie (Pipelining): Rozloženie funkcie na oddelené kroky (stupne), ktoré sa prekrývajú.
- Stupne pipeline: F (Fetch - načítanie), D (Decode - dekódovanie), E (Execute - vykonanie), WB/S (Write Back/Store - zápis výsledku).
- Vektorizácia: Prevod skalárneho programu na vektorovú formu; účinnosť závisí od koeficientu vektorizácie (r).
- Superskalárne procesory (SSP): Vykonajú niekoľko inštrukcií v jednom strojovom cykle (multidrúdová architektúra).
- Techniky SSP:
- Paralelné dekódovanie a kontrola hazardov.
- Premenovávanie registrov: Eliminácia hazardov typu WAR a WAW.
- Špekulatívne vetvenie: Predikcia skokov na udržanie naplnenej pipeline.
Prednáška 9: TLP architektúry (Thread-Level Parallelism)¶
- Zameranie: Paralelizmus na úrovni vlákien a procesov (strednozrnný a hrubozrnný).
- Prístupy:
- Multiprocesorové čipy: Integrácia viacerých procesorov na jednom čipe.
- Simultánny multithreading (SMT): Viacero vlákien zdieľa zdroje jedného procesora.
- Konzistencia: Rieši poradie, v akom procesory vidia prístupy do pamäte (procesorová a pamäťová konzistencia).
Prednáška 10: MIMD a Distribuované systémy¶
- Multipočítače: Uzlové počítače s distribuovanou pamäťou prepojené sieťou; komunikácia prebieha prenosom správ.
- P2P systémy: Rovnocenné uzly fungujúce súčasne ako klient aj server (napr. Bitcoin, BitTorrent).
- MPI (Message Passing Interface): Štandard pre knižnice podporujúce komunikáciu medzi stovkami až tisíckami paralelne pracujúcich procesorov.
- PRAM (Parallel Random-Access Machine): Teoretický model paralelného počítača so spoločnou pamäťou a N procesormi.