460-2028/03 – Paralelní a distribuované systémy (PDS)
Garantující katedra | Katedra informatiky | Kredity | 4 |
Garant předmětu | prof. Ing. Pavel Krömer, Ph.D. | Garant verze předmětu | prof. Ing. Pavel Krömer, Ph.D. |
Úroveň studia | pregraduální nebo graduální | Povinnost | volitelný odborný |
Ročník | 3 | Semestr | letní |
| | Jazyk výuky | čeština |
Rok zavedení | 2019/2020 | Rok zrušení | |
Určeno pro fakulty | FEI | Určeno pro typy studia | bakalářské |
Cíle předmětu vyjádřené dosaženými dovednostmi a kompetencemi
Studenti porozumí možnostem využití distribuovaných a paralelních architektur, naučí se základní metody dekompozice sekvenčních algoritmů, zvládnou vybrané algoritmy potřebné při tvorbě paralelních systémů a zorientují se v současných technologiích pro tvorbu aplikací založených na distribuovaných objektech.
Vyučovací metody
Přednášky
Individuální konzultace
Cvičení (v učebně)
Projekt
Ostatní aktivity
Anotace
Přehledový předmět poskytuje studentům základní orientaci v problematice paralelních a distribuovaných systémů. Podává úvod k architekturám víceprocesorových systémů, jejich využití z pohledu programátora včetně obecné metodiky tvorby paralelních algoritmů a technických prostředků pro jejich realizaci. Dále je podán přehled architektur distribuovaných objektových systémů a předveden způsob implementace distribuovaných algoritmů. Zmiňují se aktuální trendy v předmětné oblasti.
Povinná literatura:
Doporučená literatura:
Foster, I.: Designing and Building Parallel Programs. Addisson-Wesley, 1995
Grygárek, P.: Sylaby předmětu Distribuované objektové systémy
Object Management Group: The Common Object Request Broker: Architecture and Specification. Object Management Group (http://www.omg.org)
Sun Microsystems: Remote Method Invocation. http://www.javasoft.com
Sun Microsystems: Enterprise JavaBeans. http://www.javasoft.com
http://www.cs.vsb.cz/~gry72/dosy/dosys.html
Motyčková, L.: Distribuované systémy - výpočty v sítích. Science 1997.
Janeček, J.: Distribuované systémy. Skriptum ČVUT, Praha 2001
Další studijní materiály
Forma způsobu ověření studijních výsledků a další požadavky na studenta
Průběžná kontrola studia:
Příklady řešené průběžně na cvičeních.
Podmínky udělení zápočtu:
Včasné odevzdání semestrálního projektu.
E-learning
Další požadavky na studenta
Další požadavky na studenta nejsou kladeny.
Prerekvizity
Předmět nemá žádné prerekvizity.
Korekvizity
Předmět nemá žádné korekvizity.
Osnova předmětu
1. Úvod do problematiky paralelních a distribuovaných systémů. Paralelismus a pseudoparalelismus, procesy a vlákna.
2. Technická klasifikace paralelních a distribuovaných systémů. Flynnova taxonomie. Architektury s distribuovanou a sdílenou pamětí.
3. Specifika programování pro architektury se sdílenou pamětí. OpenMP, C++11, Thread Building Blocks.
4. Další aktuální modely paralelního zpracování pro architektury se sdílenou pamětí. Jazyky Go, Rust a další. Paralelismus v jazyce Python.
5. Systémy s distribuovanou pamětí. Význam propojovacích subsystémů a jejich vlastnosti.
6. Model předávání zpráv. Komunikace dvoustranná a skupinová. Message Passing Interface (MPI).
7. Task/channel model paralelního výpočtu. Fronty zpráv, Message Oriented Middleware (MOM). Posixové fronty.
8. Distribuovaná sdílená paměť, výpočetní model Partitioned Global Adress Space (PGAS). Jazyky Unified Parallel C (UPC) a UPC++.
9. Grafické karty jako prostředek pro paralelizaci / akceleraci výpočtů. Vývojové prostředí CUDA. Hybridní výpočty.
10. Počítání v Cloudu. Model Map-Reduce, aplikační rámce Hadoop, Spark a Flink. Scénáře jejich využití.
11. Webové služby a jejich využití pro distribuované výpočty. Volání vzdálených procedur. Architektonický styl Representational State Transfer (REST).
12. Knihovna Tensor Flow a její použití, aplikační rámec Caffe2.
13. Paralelní a distribuované metody pro zpracování velkých dat.
Podmínky absolvování předmětu
Výskyt ve studijních plánech
Výskyt ve speciálních blocích
Hodnocení Výuky