Detail předmětu

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

AVS Ak. rok 2023/2024 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 a superskalárních 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í. 

Aktuální informace

Garant předmětu

Koordinátor 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 bodů závěrečná zkouška (písemná část)
  • 10 bodů půlsemestrální test (písemná část)
  • 30 bodů projekty

Zajišťuje ústav

Přednášející

Cvičící

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.

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 Barbora a Karolina.
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.

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.

Technické vybavení

  • Intel kompilátor a další tooly.
  • Superpočítač Barbora a Karolina.

Literatura studijní

  • 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. download.
  • Baer, J.L.: Microprocessor Architecture. Cambridge University Press, 2010, 367 s., ISBN 978-0-521-76992-1. info.
  • van der Pas, R., Stotzer, E., and Terboven, T.: Using OpenMP-The Next Step, MIT Press Ltd, ISBN 9780262534789, 2017. info.
  • Materiály ke kurzu Computer Science 152: Computer Architecture and Engineering. http://inst.eecs.berkeley.edu/~cs152/sp13/
  • Agner Fog: Software optimization resources.
  • Aktuální PPT prezentace přednášek v Elearningu.

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. Měření výkonnosti sekvenčních kódů, představení Intel Tools (3. týden).
  2. Efektivní využití cache, přehazování a rozbalování smyček (5. týden).
  3. Vektorizace kódu pomocí OpenMP (6. týden).
  4. Paralelizace smyček pomocí OpenMP (8. týden).
  5. Funkční paralelizace pomocí OpenMP  tasků (9. týden).
  6. Sekce a vzájemné vyloučení pomocí OpenMP (10. týden).

Osnova ostatní - projekty, práce

  • Optimalizace jednovláknové aplikace pomocí pomocí cache blockingu, vektoriace a restrukturalizace kódu.
  • Vývoj paralelní aplikace pomocí OpenMP.

Průběžná kontrola studia

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

  • 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.
  • Z každého projektu je nutné získat mimimálně 1 bod.

Rozvrh

DenTypTýdnyMístn.OdDoKapacitaPSKSkupInfo
Po ostatní 2023-12-25 L334 00:0023:59 Zápočet
Po poč. lab 3., 5., 6., 8., 9., 10. výuky O204 09:0010:5020 1MIT 2MIT xx Olšák
Po ostatní 2023-12-18 L334 12:0023:59 Zápočet
Po poč. lab 3., 5., 8., 9., 10. výuky O204 14:0015:5020 1MIT 2MIT xx Jaroš
Po poč. lab 2023-10-23 O204 14:0015:5020 1MIT 2MIT xx Olšák
Po zkouška 2023-10-30 E104 E105 E112 16:0016:50 Půlsemestrální test
Po přednáška 1., 2., 3., 5., 6., 7., 8., 9., 10., 11., 12., 13. výuky E104 E105 E112 16:0017:50294 1MIT 2MIT NBIO - NSPE NISD NSEC - NGRI NVER xx Jaroš
Po přednáška 2023-10-09 E104 E105 E112 16:0017:50294 1MIT 2MIT NBIO - NSPE NISD NSEC - NGRI NVER xx Mrázek
Út ostatní 2023-12-19 L334 00:0023:59 Zápočet
Út ostatní 2023-12-26 L334 00:0023:59 Zápočet
Út poč. lab 3., 5., 6., 8., 9., 10. výuky O204 08:0009:5020 1MIT 2MIT xx Piňos
Út poč. lab 3., 5., 6., 8., 9., 10. výuky O204 10:0011:5020 1MIT 2MIT xx Piňos
Út poč. lab 3., 5., 6., 8., 9., 10. výuky O204 12:0013:5020 1MIT 2MIT xx Piňos
St ostatní 2023-12-20 L334 00:0023:59 Zápočet
St ostatní 2023-12-27 L334 00:0023:59 Zápočet
St poč. lab 3., 6., 8., 9., 10. výuky O204 09:0010:5020 1MIT 2MIT xx Jaroš
St poč. lab 2023-10-18 O204 09:0010:5020 1MIT 2MIT xx Olšák
St poč. lab 3., 6., 8., 9., 10. výuky O204 11:0012:5020 1MIT 2MIT xx Jaroš
St poč. lab 2023-10-18 O204 11:0012:5020 1MIT 2MIT xx Olšák
St zkouška 2023-12-20 E104 E112 13:0014:50 Předtermín zkoušky
St zkouška 2024-01-03 D0206 D105 13:0014:50 řádná
St zkouška 2024-01-31 D0206 13:0014:50 2. termín
Čt ostatní 2023-12-21 L334 00:0023:59 Zápočet
Čt ostatní 2023-12-28 L334 00:0023:59 Zápočet
Čt poč. lab 3., 5., 6., 8., 10. výuky O204 08:0009:5020 1MIT 2MIT xx Olšák
Čt poč. lab 2023-11-16 O204 08:0009:5020 1MIT 2MIT xx Jaroš
Čt poč. lab 3., 5., 6., 8., 9. výuky O204 10:0011:5020 1MIT 2MIT xx Chlebík
Čt poč. lab 3., 5., 6., 8., 9. výuky O204 16:0017:5020 1MIT 2MIT xx Chlebík
ostatní 2023-12-22 L334 00:0023:59 Zápočet
ostatní 2023-12-29 L334 00:0023:59 Zápočet
zkouška 2024-01-19 D105 14:0015:50 1. termín
poč. lab 3., 5., 6., 8., 10. výuky O204 14:0015:5020 1MIT 2MIT xx Jaroš
poč. lab 3., 5., 6., 8., 10. výuky O204 16:0017:5020 1MIT 2MIT xx Jaroš
So ostatní 2023-12-23 L334 00:0023:59 Zápočet
So ostatní 2023-12-30 L334 00:0023:59 Zápočet
Ne ostatní 2023-12-24 L334 00:0023:59 Zápočet
Ne ostatní 2023-12-31 L334 00:0012:00 Zápočet

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

Nahoru