Předmět: Paralelní programování

» Seznam fakult » FAV » KIV
Název předmětu Paralelní programování
Kód předmětu KIV/PPR-E
Organizační forma výuky Přednáška + Cvičení
Úroveň předmětu Magisterský
Rok studia nespecifikován
Semestr Zimní
Počet ECTS kreditů 6
Vyučovací jazyk Angličtina
Statut předmětu nespecifikováno
Způsob výuky Kontaktní
Studijní praxe Nejedná se o pracovní stáž
Doporučené volitelné součásti programu Není
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.


Studijní plány, ve kterých se předmět nachází
Fakulta Studijní plán (Verze) Kategorie studijního oboru/specializace Doporučený ročník Doporučený semestr