{{indexmenu_n>5000}} ====== Lectures ====== === 1. Lecture – Introduction into modern computer architectures === Control flow computers and Data flow computers (Data driven, Demand driven). Classification of computer architectures by Flynn’s taxonomy. Parallel processing – multi-core, multiprocessor and multiple computers based systems, the concept of parallel processing. Amdahl's and Gustafson's law. Performance metrics. \\ English: PDF: {{ .:01_introduction_b4m35pap-en.pdf|}} ODP: {{ :courses:b4m35pap:lectures:01_introduction_b4m35pap-en.odp |}} \\ [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=1e78ad87e4d7c7105a1aee7b40ac67adeb47e532-1601024401226|BBB Session Recoding]] === 2. Lecture – From the scalar to the superscalar processors (Basic organization of superscalar processor) === Superscalar processors with static, dynamic, and hybrid scheduling of instructions execution. \\ English: PDF: {{ .:02_superskalar_organization_introduction_b4m35pap-en.pdf |}} ODP: {{ .:02_superskalar_organization_introduction_b4m35pap-en.odp |}}\\ [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=51ef067b88fa39d27029ab430845655af6d1e776-1601629201433|BBB Session Recording]] \\ \\ You should already know: {{.:05_pipelining_a4m36pap.pdf|pipelining_a4m36pap.pdf}} \\ === 3. Lecture - Superscalar techniques I – Data flow inside the processor (register data flow) === Registers renaming (Tomasul algorithm) and data speculation. Precise exception support. \\ English: PDF: {{.:03_superskalar_technics_data_flow_inside_processor_b4m35pap-en.pdf |}} ODP: {{.:03_superskalar_technics_data_flow_inside_processor_b4m35pap-en.odp |}}\\ [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=324988fdcf3dcbfa34693f9b125bf6373a0efec0-1602234001852|BBB Session Recording]] \\ === 4. Lecture - Superscalar techniques II - Instruction flow, speculative execution (Control Speculation) === Prediction, predictors and instructions prefetching. Static and dynamic predictions; Smith's predictor, two-level predictors with local and global history, bi-mode, adaptive branch prediction technique, and more. Branch misprediction recovery. \\ English: PDF: {{.:04_superskalar_technics_instruction_prefetching_b4m35pap-en.pdf |}} ODP: {{.:04_superskalar_technics_instruction_prefetching_b4m35pap-en.odp |}} \\ [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=2148a99b9c9c351446860ab44ec6ef7acfcdea29-1602838501979|BBB Session Recording]] \\ === 5. Lecture - Superscalar techniques III - Memory data flow, VLIW and EPIC processors === Data flow from / to memory. Load bypassing and Load forwarding. Speculative load. Some other ways to reduce memory latency. VLIW and EPIC processors. Use of data parallelism, SIMD and vector instruction in ISA. Loop unrolling and Software pipelining - Execution on WLIV and superscalar processor. \\ English: PDF: {{.:05_superskalar_technics_memory_data_flow_vliw_and_epic_b4m35pap-en.pdf |}} ODP: {{.:05_superskalar_technics_memory_data_flow_vliw_and_epic_b4m35pap-en.odp |}} \\ [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=d7b949a4ff19bbd6c4575a77e15cad0c0aed9227-1603443301404|BBB Session Recording]] \\ === 6. Lecture – Memory subsystem === Non-Blocking cache, Victim cache, Virtual memory and cache. \\ English: PDF: {{ .:06_memory_b4m35pap-en.pdf |}} ODP: {{ .:06_memory_b4m35pap-en.odp |}} \\ [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=eec07084fb7477a232c887c29b28eed91c978905-1604051704307|BBB Session Recording]] \\ === 7. Lecture – Multiprocessor systems and memory coherence problem. === Multiprocessor computers architectures. Distributed and shared memory systems (DMS, SMS). Symmetric multiprocessor computer architectures. Methods to ensure coherence in SMP. \\ English: PDF: {{ .:07-memory_coherence_b4m35pap-en.pdf |}} ODP: {{ .:07-memory_coherence_b4m35pap-en.odp |}} \\ [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=e3163c3eb465c23dc1f0b9ac4c41026ad96f96fd-1604656501422|BBB Session Recording]] \\ === 8. Lecture – Multiprocessor systems and memory consistency problems. === Rules for performing memory operations, ensuring sequential consistency, memory consistency models. \\ English: PDF: {{ .:08-memory_consistency-b4m35pap-en.pdf |}} ODP: {{ .:08-memory_consistency-b4m35pap-en.odp |}} \\ [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=11d28d9b6b82625fa1162dc23f9d8500c9fbb8ac-1605261303834|BBB Session Recording]] \\ === 9. Lecture – Parallel Systems Programming I. === Introduction. \\ English: PDF: {{ .:09_parallelism_b4m35pap-en.pdf |}} ODP: {{ .:09_parallelism_b4m35pap-en.odp |}} \\ [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=d892e111e799d95ecbb295fc1e0a31d667eb94ac-1605866102805|BBB Session Recording]] \\ === 10. Lecture – Programming of parallel systems II. === Parallel systems programming concepts, using Message Passing Interface (MPI) and Open Multi-Processing (OpenMP) to create parallel programs.\\ English: PDF: {{ .:10_parallelism_programming_b4m35pap-en.pdf |}} ODP: {{ .:10_parallelism_programming_b4m35pap-en.odp |}} \\ Synchronization. Code optimization. Cache maintenance, consequences of coherence protocols. Included if time allows. === 11. Lecture – Interconnection networks === Static and dynamic interconnection network. \\ English: PDF: {{ .:11_interconnection_networks_b4m35pap-en.pdf |}} ODP: {{ .:11_interconnection_networks_b4m35pap-en.odp |}} \\ [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=772148333d1c60d7b80f8c1fdbd1f506fd3d899e-1607075701495|BBB Session Recording]] \\ === 12. Lecture – Use of graphic accelerators (GPU) and General-purpose computing on graphics processing units (GPGPU) === English: PDF: {{ .:13_gpu_and_gpgpu_b4m35pap.pdf |}} ODP: {{ .:13_gpu_and_gpgpu_b4m35pap.odp |}} \\ [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=496d70f57cfd77b7e2eb7a03542f1bd0887f4f31-1611309301804|BBB Session Recording]] \\ === 13. Lecture – Time and space parallelization in practice. === Sample of selected partitions on processor Intel Nehalem, AMD Optreon, IBM Power4, ARM, AArch64, RISC-V. \\ Intel and AMD x86 \\ English: PDF: {{ .:12-x86_architecture-en.pdf |}} ODP: {{ .:12-x86_architecture-en.odp |}}\\ [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=3d723eba3638b2499896aa5a630c01f320a1a364-1608285301234|BBB Session Recording]] \\ ARM, AArch64, RISC-V: \\ English: PDF: {{ .:12-risc-arch-b4m35pap-en.pdf |}} ODP: {{ .:12-risc-arch-b4m35pap-en.odp |}}\\ [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=dec4e548cee3a9bb18a348a20b94495507f357ab-1607688346309|BBB Session Recording]] \\ === 14. Lecture – Perspectives and limitations of future development and history === English: PDF: {{ .:14_history_and_future_b4m35pap.pdf |}} ODP: {{ .:14_history_and_future_b4m35pap.odp |}} \\ [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=00492c8309d9c620d6c9e72b6092334d236ff93c-1610099703107|BBB Session Recording]] \\ === Lecture – Spectre Meltdown and Others Problems of Contemporary Processors === English: PDF: {{ .:14_spectre_meltdown_and_others.pdf |}} ODP: {{ .:14_spectre_meltdown_and_others.odp |}} \\ [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=b60a92a41b839291b2f6d24869e09617b6387484-1607680502180|BBB Session Recording]] - presented by Karel Kočí, CZ.nic === Additional Materials === Materials to refresh knowledge about I/O subsystem: PCIe, HyperTransport, QuickPathInterconnect {{courses:B4M35PAP:lectures:10_io_podsystem.pdf|}} === Lectures from Previous Years === [[https://cw.fel.cvut.cz/b191/courses/b4m35pap/lectures/start|Lectures 2019/2020]] [[https://cw.fel.cvut.cz/b181/courses/b4m35pap/lectures/start|Lectures 2018/2019]] [[https://cw.fel.cvut.cz/old/courses/b4m35pap/lectures/start|Lectures 2016/2017]] /* === 13. Přednáška - Perspektivy a omezení dalšího rozvoje === {{courses:B4M35PAP:lectures:13_limity_a_vize_a4m36pap.pdf|}} */ /* === 1. Úvodní přednáška === Úvod do moderní architektury počítačů; počítače řízené tokem instrukcí (control driven) a tokem údajů (data driven a demand driven). Klasifikace počítačových architektur podle Flynna; Vícejádrové, víceprocesorové a vícepočítačové systémy, pojem paralelního zpracování. Amdahlův a Gustafsonův zákon. Výkonové metriky. \\ {{courses:B4M35PAP:lectures:01_uvodni_prednaska_a4m36pap.pdf|}} === 2. Přednáška - Paralelismus a programování paralelních systémů I === Paralelismus na úrovni instrukcí, vláken, programů a dat. Časový a prostorový paralelismus. Bernsteinovy podmínky paralelismu, datová a řídicí závislost. Úvod do programování paralelních systémů. Rozvrhování programů (statické, dynamické) a meziprocesová/meziprocesorová komunikace a synchronizace. Výpočtová granularita a zrnové balení. Mapování procesů a dat. \\ {{courses:B4M35PAP:lectures:02_paralelizmus_a4m36pap.pdf|}} === 3. Přednáška - Programování paralelních systémů II === Způsoby programování paralelních systémů - použití Message Passing Interface (MPI) a Open Multi-Processing (OpenMP) pro tvorbu paralelních programů. \\ {{courses:B4M35PAP:lectures:03_paralelni_programovani_a4m36pap.pdf|}} === 4. Přednáška - Programování paralelních systémů III === Využití grafických karet pro paralelní programy - GPU (Graphics processing unit) a GPGPU (General-purpose computing on GPU). {{courses:B4M35PAP:lectures:04_gpu_a_gpgpu_a4m36pap_2013.pdf|}} \\ === 5. Přednáška - Skalární procesor === Část I.: Návrh jednocyklového procesoru a zřetězeného procesoru (řešení hazardů). \\ {{courses:B4M35PAP:lectures:05_pipelining_a4m36pap.pdf|}} \\ Část II.: Poznámky k semestrálnímu projektu. \\ {{courses:B4M35PAP:lectures:05_poznamky_k_projektu_a4m36pap.pdf|}} \\ === 6. Přednáška - Od skalárního procesoru k superskalárnímu (základní organizace superskalárního procesoru) === Superskalární procesory se statickým, __dynamickým__ a hybridním plánováním vykonávaní instrukcí. \\ {{courses:B4M35PAP:lectures:06_superskalarni_organizace_uvod_a4m36pap_2013.pdf|}} \\ === 7. Přednáška - Superskalární techniky I - Spekulativní vykonávání (řídicí spekulace) === Predikce, prediktory a předvýběr instrukcí. Statické a dynamické predikce; Smithův prediktor, dvou-úrovňové prediktory s lokální a globální historií , dvou-módový prediktor, a další. Zotavení po nesprávné predikci. \\ {{courses:B4M35PAP:lectures:07_superskalarni_techniky_predikce_vetveni_a4m36pap_2013.pdf|}} \\ === 8. Přednáška - Superskalární techniky II - Tok dat uvnitř procesoru (register data flow) === Přejmenování registrů (Tomasulův algoritmus) a datové spekulace. Podpora přesného přerušení. \\ {{courses:B4M35PAP:lectures:08_superskalarni_techniky_tok_dat_uvnitr_procesoru_a4m36pap_2013.pdf|}} \\ === 8. Přednáška - Spelukace === Spekulativní provádění instrukcí a podpora přesného přerušení. Procesory VLIW a EPIC. Využití datového paralelismu, SIMD a vektorové instrukce v ISA. \\ {{courses:B4M35PAP:lectures:08_spekulace_a4m36pap.pdf|}} \\ === 9. Přednáška - Superkalární techniky III - Memory data flow, a Procesory VLIW a EPIC === Tok dat z/do paměti. Load bypassing a Load forwarding. Spekulativní load. Některé další způsoby redukce latence paměti. Procesory VLIW a EPIC. Využití datového paralelismu, SIMD a vektorové instrukce v ISA. Loop unrolling a Software pipelining - vykonání na WLIV a superskalárním procesoru. \\ {{courses:B4M35PAP:lectures:09_superskalarni_techniky_memory_data_flow_a_vliw_a_epic_a4m36pap_2013.pdf|}} === 10. Přednáška - Multiprocesorové systémy a problém koherence paměti === Architektury multiprocesorových počítačů. Systémy s distribuovanou a sdílenou pamětí (DMS, SMS). Architektury symetrických multiprocesorových počítaču. Způsoby zajištění koherence v SMP. \\ {{courses:B4M35PAP:lectures:10_smp_a_zajisteni_koherence_a4m36pap_2013.pdf|}} === 11. Přednáška - Multiprocesorové systémy a problém konzistence paměti === Pravidla pro provádění paměťových operací, zajištění sekvenční konzistence, modely paměťové konzistence.\\ {{courses:B4M35PAP:lectures:09_konzistence_a4m36pap.pdf|}} === 12. Doplňující materiál - Časový a prostorový paralelizmus v praxi === Ukázka vybraných partií na procesoru Intel Nehalem, AMD Optreon,... \\ {{courses:B4M35PAP:lectures:10_nehalem_a4m36pap.pdf|}} */ /* === 11. Přednáška - Časový a prostorový paralelizmus v praxi === Ukázka vybraných partií na procesoru Intel Nehalem, AMD Optreon, IBM Power4,... \\ {{courses:B4M35PAP:lectures:10_nehalem_a4m36pap.pdf|}} === 12. Přednáška - Superpočítače dnešní doby === Původní plánované téma: Masívně paralelní procesory (MPP) a clustery, Superpočítače na báze GPU; Propojovací sítě – statické a dynamické. \\ Přednášené téma: Historie superpočítačů (úvod), Propojovací sítě - statické a dynamické (přehled). \\ {{courses:B4M35PAP:lectures:11_superpocitace_historie_a4m36pap.pdf|}} \\ {{courses:B4M35PAP:lectures:interconnection_networks.pdf|}} === 13. Přednáška === Architektura I/O podsystému. Aktuální sběrnice. Způsoby propojení procesoru, paměti a periférií uvnitř systémů na čipu (SoC). Vyrovnávací paměti v I/O podsystému, způsoby implementace sdíleného přístupu. \\ {{courses:B4M35PAP:lectures:12_io2012_a4m36pap.pdf|}} === 14. Přednáška === Realizace moderního IO podsystému (NUMA architektury), HyperTransport, Quick path interconnect \\ {{courses:B4M35PAP:lectures:13_realizacesbernice2012_a4m36pap.pdf|}} === 15. Přednáška === Perspektivy a omezení dalšího rozvoje, rezerva \\ {{courses:B4M35PAP:lectures:14_limity_a_vize_a4m36pap.pdf|}} */