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

« Zpět
Název předmětu Paralelní programování
Kód předmětu UFY/PP
Organizační forma výuky Přednáška + Cvičení
Úroveň předmětu Bakalářský
Rok studia nespecifikován
Četnost výuky V každém akademickém roce, jen v zimním semestru.
Semestr Zimní
Počet ECTS kreditů 4
Vyučovací jazyk čeština
Statut předmětu nespecifikováno
Způsob výuky nespecifikováno
Studijní praxe nespecifikováno
Doporučené volitelné součásti programu Není
Vyučující
  • Předota Milan, doc. RNDr. Ph.D.
Obsah předmětu
Obsah přednášek: 1. Úvod do paralelního počítání. Co je to paralelní počítání? Proč potřebujeme paralelní počítače? Strategie paralelizace. Seznámení s jednoduchým paralelním programem. 2. Příkazy jazyka C pro práci se soubory a časování běhu programu. 3. Rozdělení paralelních úloh z hlediska jejich spolupráce během výpočtu. Sdílená vs. distribuovaná paměť, MPI vs. OpenMP paralelní prostředí. 4. Co je to MPI? Příkazy pro vytvoření a správu paralelního prostředí. 5. Paralelizace v MPI, základní příkazy (MPI BCAST, MPI REDUCE, MPI ALLREDUCE). 6. Správa úloh, spouštění paralelních úloh, frontové systémy. 7. Paralelizace v MPI, další příkazy (MPI SEND, MPI RECV). 8. Vstup a výstup v paralelních programech. Srovnání jednotlivých metod. 9. Komunikace vs. výpočetní čas - optimalizace počtu vláken, efektivita. 10. Paralelizace v OpenMP, základní příkazy. 11. Aplikace: Paralelní výpočty v matematice. 12. Aplikace. Paralelní třídění. 13. Aplikace. Paralelní molekulární dynamika. 14. Programování na grafických kartách (GPU). Obsah cvičení: Obsah cvičení sleduje obsah přednášek. Zpočátku je větší prostor věnován přednáškám, v druhé polovině kurzu cvičením.

Studijní aktivity a metody výuky
Monologická (výklad, přednáška, instruktáž), Demonstrace, Aktivizující (simulace, hry, dramatizace)
  • Domácí příprava na výuku - 39 hodin za semestr
  • Účast na výuce - 39 hodin za semestr
  • Příprava na zkoušku - 30 hodin za semestr
Výstupy z učení
Seznámení se způsoby paralelizace programů, jejich HW a SW implementací pomocí MPI a OpenMP. Krátké seznámení s paralelizací na GPU - grafických kartách. Řešení vzorových praktických úloh, práce v paralelním prostředí.
Zvládnutí MPI a OpenMP paralelizace, seznámení s principy GPU paralelizace. Schopnost napsat paralelní program a/nebo zparalelizovat sériový program.
Předpoklady
Základní znalost programování v jazyce C, základy práce v linuxu (možno rychle doplnit).

Hodnoticí metody a kritéria
Ústní zkouška, Analýza výkonů studenta

Podmínka získání zápočtu: Vyřešení alespoň 70% úkolů řešených na cvičení s pomocí vyučujícího. Samostatné vyřešení dvou větších samostatných úloh na alespoň 50%. Podmínka složení zkoušky: Alespoň 50% znalost látky obsažené ve dvou vylosovaných zkušebních otázkách.
Doporučená literatura
  • BARBARA CHAPMAN, GABRIELE JOST, RUUD VAN DER PAS: Using OpenMP: Portable Shared Memory Parallel Programming, The MIT Press, 2007.
  • Elearningové materiály ke kurzu M. Předoty.
  • MICHAEL J. QUINN: Parallel Programming in C with MPI and OpenMP, McGraw Hill Higher Education, 2003.
  • Parallel Programming in OpenMP by Rohit Chandra, Leo Dagum, Dave Kohr, and Dror Maydan.
  • Using MPI - 2nd Edition: Portable Parallel Programming with the Message Passing Interface (Scientific and Engineering Computation) by William Gropp, Ewing Lusk, and Anthony Skjellum.


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