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
Zakončení
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í
Jaroš Jiří, doc. Ing., Ph.D. (UPSY)
Jaroš Marta, Ing., Ph.D. (UPSY)
Olšák Ondřej, Ing. (UPSY)
Piňos Michal, Ing. (UPSY)
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
- Skalární procesory, zřetězené zpracování instrukcí, asistence kompilátoru.
- Superskalární procesory, dynamické plánování instrukcí.
- Optimalizace toku dat v hierarchii pamětí cache.
- Predikce skoků, optimalizace načítání instrukcí a dat.
- Procesory s podporou datového paralelismu a vektorizace.
- Procesory s podporou vláken a vícejádrové procesory.
- Paralelizace a vektorizace smyček.
- Funkční paralelismus a akcelerace rekurzivních algoritmů.
- Synchronizace na systémech se sdílenou pamětí.
- Algoritmy koherence pamětí cache.
- Architektury s distribuovanou sdílenou pamětí.
- Architektura a programování grafických karet.
- Nízkopříkonové procesory a techniky pro snižování příkonu.
Osnova počítačových cvičení
- Měření výkonnosti sekvenčních kódů, představení Intel Tools (3. týden).
- Efektivní využití cache, přehazování a rozbalování smyček (5. týden).
- Vektorizace kódu pomocí OpenMP (6. týden).
- Paralelizace smyček pomocí OpenMP (8. týden).
- Funkční paralelizace pomocí OpenMP tasků (9. týden).
- 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
Den | Typ | Týdny | Místn. | Od | Do | Kapacita | PSK | Skup | Info |
---|---|---|---|---|---|---|---|---|---|
Po | ostatní | 2023-12-25 | L334 | 00:00 | 23:59 | Zápočet | |||
Po | poč. lab | 3., 5., 6., 8., 9., 10. výuky | O204 | 09:00 | 10:50 | 20 | 1MIT 2MIT | xx | Olšák |
Po | ostatní | 2023-12-18 | L334 | 12:00 | 23:59 | Zápočet | |||
Po | poč. lab | 3., 5., 8., 9., 10. výuky | O204 | 14:00 | 15:50 | 20 | 1MIT 2MIT | xx | Jaroš |
Po | poč. lab | 2023-10-23 | O204 | 14:00 | 15:50 | 20 | 1MIT 2MIT | xx | Olšák |
Po | zkouška | 2023-10-30 | E104 E105 E112 | 16:00 | 16: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:00 | 17:50 | 294 | 1MIT 2MIT | NBIO - NSPE NISD NSEC - NGRI NVER xx | Jaroš |
Po | přednáška | 2023-10-09 | E104 E105 E112 | 16:00 | 17:50 | 294 | 1MIT 2MIT | NBIO - NSPE NISD NSEC - NGRI NVER xx | Mrázek |
Út | ostatní | 2023-12-19 | L334 | 00:00 | 23:59 | Zápočet | |||
Út | ostatní | 2023-12-26 | L334 | 00:00 | 23:59 | Zápočet | |||
Út | poč. lab | 3., 5., 6., 8., 9., 10. výuky | O204 | 08:00 | 09:50 | 20 | 1MIT 2MIT | xx | Piňos |
Út | poč. lab | 3., 5., 6., 8., 9., 10. výuky | O204 | 10:00 | 11:50 | 20 | 1MIT 2MIT | xx | Piňos |
Út | poč. lab | 3., 5., 6., 8., 9., 10. výuky | O204 | 12:00 | 13:50 | 20 | 1MIT 2MIT | xx | Piňos |
St | ostatní | 2023-12-20 | L334 | 00:00 | 23:59 | Zápočet | |||
St | ostatní | 2023-12-27 | L334 | 00:00 | 23:59 | Zápočet | |||
St | poč. lab | 3., 6., 8., 9., 10. výuky | O204 | 09:00 | 10:50 | 20 | 1MIT 2MIT | xx | Jaroš |
St | poč. lab | 2023-10-18 | O204 | 09:00 | 10:50 | 20 | 1MIT 2MIT | xx | Olšák |
St | poč. lab | 3., 6., 8., 9., 10. výuky | O204 | 11:00 | 12:50 | 20 | 1MIT 2MIT | xx | Jaroš |
St | poč. lab | 2023-10-18 | O204 | 11:00 | 12:50 | 20 | 1MIT 2MIT | xx | Olšák |
St | zkouška | 2024-01-03 | D0206 D105 | 13:00 | 14:50 | řádná | |||
St | zkouška | 2024-01-31 | D0206 D0207 | 13:00 | 14:50 | 2. termín | |||
Čt | ostatní | 2023-12-21 | L334 | 00:00 | 23:59 | Zápočet | |||
Čt | ostatní | 2023-12-28 | L334 | 00:00 | 23:59 | Zápočet | |||
Čt | poč. lab | 3., 5., 6., 8., 10. výuky | O204 | 08:00 | 09:50 | 20 | 1MIT 2MIT | xx | Olšák |
Čt | poč. lab | 2023-11-16 | O204 | 08:00 | 09:50 | 20 | 1MIT 2MIT | xx | Jaroš |
Čt | poč. lab | 3., 5., 6., 8., 9. výuky | O204 | 10:00 | 11:50 | 20 | 1MIT 2MIT | xx | Chlebík |
Čt | poč. lab | 3., 5., 6., 8., 9. výuky | O204 | 16:00 | 17:50 | 20 | 1MIT 2MIT | xx | Chlebík |
Pá | ostatní | 2023-12-22 | L334 | 00:00 | 23:59 | Zápočet | |||
Pá | ostatní | 2023-12-29 | L334 | 00:00 | 23:59 | Zápočet | |||
Pá | zkouška | 2024-01-19 | D105 | 14:00 | 15:50 | 1. termín | |||
Pá | poč. lab | 3., 5., 6., 8., 10. výuky | O204 | 14:00 | 15:50 | 20 | 1MIT 2MIT | xx | Jaroš |
Pá | poč. lab | 3., 5., 6., 8., 10. výuky | O204 | 16:00 | 17:50 | 20 | 1MIT 2MIT | xx | Jaroš |
So | ostatní | 2023-12-23 | L334 | 00:00 | 23:59 | Zápočet | |||
So | ostatní | 2023-12-30 | L334 | 00:00 | 23:59 | Zápočet | |||
Ne | ostatní | 2023-12-24 | L334 | 00:00 | 23:59 | Zápočet | |||
Ne | ostatní | 2023-12-31 | L334 | 00:00 | 12:00 | Zápočet |
Zařazení předmětu ve studijních plánech
- Program IT-MGR-2, obor MBI, MIN, MIS, MMM, libovolný ročník, volitelný
- Program IT-MGR-2, obor MBS, libovolný ročník, povinně volitelný skupina C
- Program IT-MGR-2, obor MGM, 2. ročník, volitelný
- Program IT-MGR-2, obor MPV, 2. ročník, povinný
- Program IT-MGR-2, obor MSK, 2. ročník, povinně volitelný skupina C
- Program MITAI, obor NADE, NBIO, NCPS, NEMB, NEMB do 2021/22, NHPC, NIDE, NMAL, NNET, NSEN, NSPE, NVIZ, 1. ročník, povinný
- Program MITAI, obor NGRI, NISD, NISY, NISY do 2020/21, NMAT, NSEC, NVER, libovolný ročník, povinný