Vyučující
|
-
Janouškovec Jaroslav, doc. Ing. Ph.D.
|
Obsah předmětu
|
1. Architektury paralelních počítačů - klasifikace. Základní modely dekompozice výpočtu na paralelní procesy, způsoby interakce procesů. Výkonnostní kriteria. 2. Paralelizace vykonávání programového kódu. Realizace paralelních procesů v počítačích se sdílenou pamětí. 3. Funkční (MPMD) paralelismus v rámci aplikace (vlákna), primitivní a strukturované formy interakce vláken. Realizace datového (SPMD) paralelismu v počítači se sdílenou pamětí 4. Programovací jazyky s podporou vláken - prostředky pro paralelizaci výpočtu (Java a C++: vlákna, Ada: tasky a rendez-vous) 5. Knihovny pro podporu vláken (jazyk C a vlákna ve standardu POSIX a rozhraní WinAPI). 6. Prostředky pro paralelní výpočty jiným způsobem, než jak jsou tradičně chápaná vlákna - OpenMP, Intel Threading Building Blocks a OpenCL (GPGPU). 7. Paralelní výpočetní procesy v multiprocesorových systémech s distribuovanou pamětí - realizace modelů MPMD a SPMD. Paralelizace komunikace - vliv fyzické topologie sítě, virtuální topologie. 8. Programové prostředky pro distribuované aplikace - PVM. 9. Programové prostředky pro distribuované aplikace - MPI. 10. Gridová prostředí, principy využití nástroje Globus Toolkit. 11. Pokročilé techniky urychlení výpočtu v distribuovaném prostředí. 12. Systémy reálného času. 13. Implementace multithreadingu na uniprocesoru a symetrickém multiprocesoru.
|
Studijní aktivity a metody výuky
|
Přednáška s diskusí, Demonstrace dovedností, Studium metodou řešení problémů, Seminární výuka, Samostatná práce studentů
- Příprava na zkoušku [10-60]
- 104 hodin za semestr
- Vypracování seminární práce v magisterském studijním programu [5-100]
- 52 hodin za semestr
|
Předpoklady |
---|
Odborné znalosti |
---|
znalost základů operačních systémů, KIV/ZOS. Znalost jazyka umožňujícího běh vláken, případně umožňujícího používat funkce operačního systému pro práci s vlákny. Výhodou je znalost pointerového jazyka, např. C, KIV/PC |
Výsledky učení |
---|
předmět poskytne studentovi znalosti, které může uplatnit jak při vývoji paralelních aplikací, tak při vývoji nástrojů pro vývoj a běh paralelních aplikací. Znalosti spadají do následující oblastí: - teorie paralelních výpočtů, výpočetní modely - formy interakce procesů a vláken - výpočetní prostředí se sdílenou a distribuovanou pamětí - prostředky jazyků Java, Ada, normy POSIX a rozhraní WinAPI v SMP - prostředky PVM a MPI v distribuovaném prostředí - metody urychlení výpočtu - výpočetní úlohy reálného času |
Vyučovací metody |
---|
Přednáška s diskusí, |
Řešení problémů, |
Demonstrace dovedností, |
Samostatná práce studentů, |
Seminární výuka (badatelské metody), |
Hodnotící metody |
---|
Písemná zkouška, |
Test, |
Seminární práce, |
Individuální prezentace, |
Doporučená literatura
|
-
Andrews, Gregory R. Foundations of multithreaded, parallel, and distributed programming. Reading : Addison-Wesley, 2000. ISBN 0-201-35752-6.
-
Berman, Kenneth A.; Paul, Jerome L. Algorithms: sequential, parallel, and distributed. Boston : Course Technology, 2005. ISBN 0-534-42057-5.
-
Grama, Ananth. Introduction to parallel computing. 2nd ed. Harlow : Pearson, 2003. ISBN 0-201-64865-2.
-
Ježek, Karel; Matějovic, Přemysl; Racek, Stanislav. Paralelní architektury a programy. Plzeň : ZČU, 1997. ISBN 80-7082-322-4.
-
Skillicorn, David. Foundations of parallel programming. Cambridge : University Press, 1994. ISBN 0-521-45511-1.
|