Detail předmětu

Architektury výpočetních systémů

FIT-AVSAk. rok: 2020/2021

Předmět pokrývá architekturu současných výpočetních systémů složených z univerzálních i specializovaných procesorů a jejich paměťové subsystémy. Paralelismus na úrovni instrukcí  je studován na skalárních, superskalárních a VLIW procesorech. Dále jsou probrány procesory s vláknovým paralelismem. Datový paralelismus je ilustrován na SIMD instrukcích a na grafických procesorech. Následuje výklad programování víceprocesorových systémů se sdílenou pamětí v prostředí OpenMP a popis nejrozšířenějších vícejádrových multiprocesorů i pokročilých systémů NUMA. V závěru se probírá generická architektura grafických karet a základní techniky akcelerace výpočtů na GPU pomocí OpenMP. Jsou vysvětleny i techniky použité při nízkopříkonových procesorů a aplikací. 

Výsledky učení předmětu

Přehled architektur současných výpočetních systémů, jejich možností a budoucích trendů. Schopnost vyhodnotit efektivitu softwarových aplikací na daném výpočetním systému, identifikovat výkonnostní problémy a navrhnout jejich nápravu. Praktické zkušenosti s prací na superpočítačích Anselm a Salomon.
Pochopení důsledků hardwarových omezení na efektivitu softwarových řešení.

Prerekvizity

Architektura počítače typu von Neumann, hierarchická organizace paměťového systému, programování v jazyce symbolických instrukcí a jazyce C/C++, činnost a funkce kompilátoru.

Doporučená nebo povinná literatura

current PPT slides for lectures.
http://inst.eecs.berkeley.edu/~cs152/sp13/
https://www.anandtech.com
Agner Fog: Software optimization resources
Baer, J.L.: Microprocessor Architecture. Cambridge University Press, 2010, 367 s., ISBN 978-0-521-76992-1.
Hennessy, J.L., Patterson, D.A.: Computer Architecture - A Quantitative Approach. 5. vydání, Morgan Kaufman Publishers, Inc., 2012, 1136 s., ISBN 1-55860-596-7.
van der Pas, R., Stotzer, E., and Terboven, T.: Using OpenMP-The Next Step, MIT Press Ltd, ISBN 9780262534789, 2017.

Způsob a kritéria hodnocení

Vyhodnocení dvou projektů v celkovém rozsahu 14 hodin, půlsemestrální písemka.
Podmínky zápočtu:
Získání 20 ze 40 bodů za projekty a půlsemestrální písemku.

Jazyk výuky

čeština

Cíl

Seznámit se s architekturou moderních výpočetních systémů založených na vícejádrových procesorech architektury x86, RISC-V nebo ARM v konfiguracích se sdílenou (UMA) i distribuovanou sdílenou (NUMA) pamětí, často doplněných o akcelerátor ve formě GPU. Pochopit hardwarové aspekty výpočetních systémů, které mají vliv na výkon dané aplikace a příkon systému. Umět posoudit možnosti konkrétní architektury a predikovat výkonnost aplikací. Ujasnit si úlohu překladače a jeho spolupráci s procesorem. Získat schopnost orientovat se v nabídce jednotlivých komponent výpočetních systémů, dovést je hodnotit a porovnávat.

Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky

  • Zameškaná cvičení je možné nahradit v alternativní termín.
  • V poslední týdnu semestru budou probíhat náhradní cvičení.

Zařazení předmětu ve studijních plánech

  • Program IT-MGR-2 magisterský navazující

    obor MBS , libovolný ročník, zimní semestr, 5 kreditů, povinně volitelný
    obor MBI , libovolný ročník, zimní semestr, 5 kreditů, volitelný
    obor MIS , libovolný ročník, zimní semestr, 5 kreditů, volitelný
    obor MIN , libovolný ročník, zimní semestr, 5 kreditů, volitelný
    obor MMM , libovolný ročník, zimní semestr, 5 kreditů, volitelný

  • Program MITAI magisterský navazující

    specializace NISD , libovolný ročník, zimní semestr, 5 kreditů, povinný
    specializace NISY , libovolný ročník, zimní semestr, 5 kreditů, povinný
    specializace NSEC , libovolný ročník, zimní semestr, 5 kreditů, povinný
    specializace NMAT , libovolný ročník, zimní semestr, 5 kreditů, povinný
    specializace NGRI , libovolný ročník, zimní semestr, 5 kreditů, povinný
    specializace NVER , libovolný ročník, zimní semestr, 5 kreditů, povinný
    specializace NBIO , 1. ročník, zimní semestr, 5 kreditů, povinný
    specializace NIDE , 1. ročník, zimní semestr, 5 kreditů, povinný
    specializace NCPS , 1. ročník, zimní semestr, 5 kreditů, povinný
    specializace NNET , 1. ročník, zimní semestr, 5 kreditů, povinný
    specializace NVIZ , 1. ročník, zimní semestr, 5 kreditů, povinný
    specializace NSEN , 1. ročník, zimní semestr, 5 kreditů, povinný
    specializace NMAL , 1. ročník, zimní semestr, 5 kreditů, povinný
    specializace NHPC , 1. ročník, zimní semestr, 5 kreditů, povinný
    specializace NEMB , 1. ročník, zimní semestr, 5 kreditů, povinný
    specializace NADE , 1. ročník, zimní semestr, 5 kreditů, povinný
    specializace NSPE , 1. ročník, zimní semestr, 5 kreditů, povinný

  • Program IT-MGR-2 magisterský navazující

    obor MGM , 2. ročník, zimní semestr, 5 kreditů, volitelný
    obor MPV , 2. ročník, zimní semestr, 5 kreditů, povinný
    obor MSK , 2. ročník, zimní semestr, 5 kreditů, povinně volitelný

Typ (způsob) výuky

 

Přednáška

26 hod., nepovinná

Vyučující / Lektor

Osnova

  1. Skalární procesory, zřetězené zpracování instrukcí, asistence kompilátoru.
  2. Superskalární procesory, dynamické plánování instrukcí.
  3. Optimalizace toku dat v hierarchii pamětí cache.
  4. Predikce skoků, optimalizace načítání instrukcí a dat. 
  5. Procesory s podporou datového paralelismu a vektorizace.
  6. Procesory s podporou vláken a vícejádrové procesory.
  7. Paralelizace a vektorizace smyček.
  8. Funkční paralelismus a akcelerace rekurzivních algoritmů.
  9. Synchronizace na systémech se sdílenou pamětí. 
  10. Algoritmy koherence pamětí cache.
  11. Architektury s distribuovanou sdílenou pamětí.
  12. Architektura a programování grafických karet.
  13. Nízkopříkonové procesory a techniky pro snižování příkonu.

Cvičení na počítači

12 hod., povinná

Vyučující / Lektor

Osnova

  1. Měření výkonnosti kódu a Roof-line model (4. týden).
  2. Dekompozice problému s ohledem na cache (5. týden).
  3. Vektorizace kódu pomocí OpenMP (7. týden).
  4. Paralelizace smyček a úloh pomocí OpenMP (8. týden).
  5. Funkční paralelizace a synchronizace pomocí OpenMP (10. týden).
  6. Ukázka paralelních výpočtů na Raspberry PI (11. týden).

Projekt

14 hod., povinná

Vyučující / Lektor

Osnova

  • Měření výkonnosti a optimalizace procesorového kódu pomocí OpenMP.
  • Vývoj aplikace na v OpenMP na NUMA uzlu superpočítače.

eLearning