Fakulta informačních technologií VUT v Brně

Detail předmětu

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

AVS Ak. rok 2019/2020 zimní semestr 5 kreditů

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í. 

Garant předmětu

Zástupce garanta předmětu

Jazyk výuky

česky

Zakončení

zápočet+zkouška (písemná)

Rozsah

26 hod. přednášky, 12 hod. pc laboratoře, 14 hod. projekty

Bodové hodnocení

60 zkouška, 15 půlsemestrální test, 25 projekty

Zajišťuje ústav

Přednášející

Cvičící

Bordovský Gabriel, Ing. (UPSY FIT VUT)
Jaroš Marta, Ing. (UPSY FIT VUT)

Získané dovednosti, znalosti a kompetence z 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.

Dovednosti, znalosti a kompetence obecné

Pochopení důsledků hardwarových omezení na efektivitu softwarových řešení.

Cíle předmětu

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.

Proč je předmět vyučován

Existuje spousta problémů a programovacích jazyků, kde na výkonu aplikace, spotřebované paměti, použitém procesoru nebo spotřebě elektrické energie nezáleží. Co ale dělat v případě, když pracuji na složitém úkolu, kde je výkon aplikace, či příkon systému věc naprosto kritická? V takovém případě je třeba program uzpůsobit použitému výpočetnímu systému! 
Smyslem kurzu AVS je detailně rozebrat architekturu současných vícejádrových superskalárních procesů, paměťových subsystémů a lehce se dotknout využití grafických karet s cílem porozumět faktorům majícím vliv na výkon softwaru. 
Naučíte se tedy, jak procesor pracuje se složitými proudy instrukcí, jak spekulativně provádí různé části kódu nebo jak přednačítá data z paměti. Velký důraz je kladen na vektorizaci smyček, což je jeden z hlavních trendů navyšování výkonu procesorů a naprosto klíčová technologie pro akceleraci programů pomocí grafických karet. Dále se zaměříme na možnosti paralalelizace na vícejádrových systémech, které v současné době obsahují 50+ výpočetních jader. Naučíme se knihovnu OpenMP, která pomocí několika jednoduchých direktiv umožní rozdělit náš problém na všechna procesorová jádra a připojené grafické karty. Ukážeme si rovněž techniky a softwarové prostředky pro identifikaci výkonnostních problémů a základní techniky jak se těmto problémům vyvarovat již ve fázi návrhu software.

Požadované prerekvizitní znalosti a dovednosti

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.

Literatura studijní

Literatura referenční

  • 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.

Osnova přednášek

  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.

Osnova ostatní - projekty, práce

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

Průběžná kontrola studia

Vyhodnocení dvou projektů v celkovém rozsahu 14 hodin, půlsemestrální písemka.

Kontrolovaná výuka

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

Podmínky zápočtu

Získání 20 ze 40 bodů za projekty a půlsemestrální písemku.

Rozvrh

DenTypTýdnyMístn.OdDoPSKSkupInfo
Popoč. labvýuky O204 11:0012:50 1MIT 2MIT xx
Popřednáškavýuky E104 E105 E112 14:0015:50 1MIT 2MIT MPV xx
Popoč. labvýuky O204 18:0019:50 1MIT 2MIT xx
Útpoč. labvýuky O204 12:0013:50 1MIT 2MIT xx
Stpoč. labvýuky O204 14:0015:50 1MIT 2MIT xx
Stpoč. labvýuky O204 16:0017:50 1MIT 2MIT xx
Stpoč. labvýuky O204 18:0019:50 1MIT 2MIT xx
Čtpoč. labvýuky O204 08:0009:50 1MIT 2MIT xx
Čtpoč. labvýuky O204 10:0011:50 1MIT 2MIT xx
Čtpoč. labvýuky O204 12:0013:50 1MIT 2MIT xx
Čtpoč. labvýuky O204 14:0015:50 1MIT 2MIT xx
Čtpoč. labvýuky O204 16:0017:50 1MIT 2MIT xx
Čtpoč. labvýuky O204 18:0019:50 1MIT 2MIT xx
poč. labvýuky O204 08:0009:50 1MIT 2MIT xx
poč. labvýuky O204 10:0011:50 1MIT 2MIT xx
poč. labvýuky O204 12:0013:50 1MIT 2MIT xx

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

Nahoru