Název:

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

Zkratka:AVS
Ak.rok:2019/2020
Semestr:zimní
Studijní plán:
ProgramObor/
specializace
RočníkPovinnost
IT-MGR-2MBI-volitelný
IT-MGR-2MBS-povinně volitelný - skupina C
IT-MGR-2MGM2.volitelný
IT-MGR-2MIN-volitelný
IT-MGR-2MIS-volitelný
IT-MGR-2MMM-volitelný
IT-MGR-2MPV2.povinný
IT-MGR-2MSK2.povinně volitelný - skupina C
MITAINADE1.povinný
MITAINBIO1.povinný
MITAINCPS1.povinný
MITAINEMB1.povinný
MITAINGRI-povinný
MITAINHPC1.povinný
MITAINIDE1.povinný
MITAINISD-povinný
MITAINISY-povinný
MITAINMAL1.povinný
MITAINMAT-povinný
MITAINNET1.povinný
MITAINSEC-povinný
MITAINSEN1.povinný
MITAINSPE1.povinný
MITAINVER-povinný
MITAINVIZ1.povinný
Vyučovací jazyk:čeština
Kredity:5 kreditů
Ukončení:zápočet+zkouška (písemná)
Výuka:
hod./sempřednáškasem./cvič.lab. cvič.poč. cvič.jiná
Rozsah:26001214
 zkouškatestycvičenílaboratořeostatní
Body:60150025
Garant:Jaroš Jiří, doc. Ing., Ph.D. (UPSY)
Zástupce garanta:Sekanina Lukáš, prof. Ing., Ph.D. (UPSY)
Přednášející:Jaroš Jiří, doc. Ing., Ph.D. (UPSY)
Cvičící:Bordovský Gabriel, Ing. (UPSY)
Jaroš Marta, Ing. (UPSY)
Fakulta:Fakulta informačních technologií VUT v Brně
Pracoviště:Ústav počítačových systémů FIT VUT v Brně
Navazující:
Grafické a multimediální procesory (GMU), UPSY
Návrh externích adaptérů a vestavěných systémů (NAV), UPSY
Rozvrh:
DenVýukaTýdenMístnostOdDoPSKSkupiny
Popoč. labvýukyO204 11:0012:501MIT 2MIT xx
PopřednáškavýukyE104 E105 E112 14:0015:501MIT 2MIT MPV xx
Popoč. labvýukyO204 18:0019:501MIT 2MIT xx
Útpoč. labvýukyO204 12:0013:501MIT 2MIT xx
Stpoč. labvýukyO204 14:0015:501MIT 2MIT xx
Stpoč. labvýukyO204 16:0017:501MIT 2MIT xx
Stpoč. labvýukyO204 18:0019:501MIT 2MIT xx
Čtpoč. labvýukyO204 08:0009:501MIT 2MIT xx
Čtpoč. labvýukyO204 10:0011:501MIT 2MIT xx
Čtpoč. labvýukyO204 12:0013:501MIT 2MIT xx
Čtpoč. labvýukyO204 14:0015:501MIT 2MIT xx
Čtpoč. labvýukyO204 16:0017:501MIT 2MIT xx
Čtpoč. labvýukyO204 18:0019:501MIT 2MIT xx
poč. labvýukyO204 08:0009:501MIT 2MIT xx
poč. labvýukyO204 10:0011:501MIT 2MIT xx
poč. labvýukyO204 12:0013:501MIT 2MIT xx
 
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.
Anotace:
  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í. 
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.
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í.
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.
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 počítačových cvičení:
 
  1. Práce se superpočítačem Anselm a Salomon.
  2. Měření výkonnosti kódu, Roof-line model a Amdahlův zákon.
  3. Dekompozice problému s ohledem na cache (cache blocking)
  4. Vektorizace kódu pomocí OpenMP.
  5. Paralelizace smyček a úloh pomocí OpenMP.
  6. Funkční paralelizace a synchronizace pomocí OpenMP.
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.
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.
Literatura studijní:
 
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í.
Průběžná kontrola studia:
  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.
 

Vaše IPv4 adresa: 54.226.102.115