Skip to content

← Späť na PPS - Exam

NoteBookLM Notes

  1. Prednáška 1: Úvod do paralelných architektúr
  2. Prednáška 2: Konvergencia paralelných architektúr
  3. Prednáška 3: Klasifikácia počítačových architektúr
  4. Prednáška 4: Výkon paralelných architektúr
  5. Prednáška 5: Modely paralelných architektúr a ich vývoj
  6. Prednáška 6: Opis realizácie programu
  7. Prednáška 7: Charakteristické vlastnosti paralelizmu
  8. Prednáška 8: Prúdové spracovanie a ILP architektúry
  9. Prednáška 9: TLP architektúry (Thread-Level Parallelism)
  10. Prednáška 10: MIMD a Distribuované systémy
  11. 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:
    1. Dopredné vyhľadávanie: Prekrývanie výberu inštrukcie (I) s jej dekódovaním a vykonaním (E).
    2. Funkčný paralelizmus: Súbežné využitie multifunkčných jednotiek.
    3. 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.

Presentation [PDF]

Spat hore