456-0324/01 – Programování paralelních aplikací (PPA)

Garantující katedraKatedra informatikyKredity4
Garant předmětuRNDr. Ondřej Jakl, CSc.Garant verze předmětuRNDr. Ondřej Jakl, CSc.
Úroveň studiapregraduální nebo graduálníPovinnostvolitelný odborný
Ročník2Semestrzimní
Jazyk výukyčeština
Rok zavedení2003/2004Rok zrušení2009/2010
Určeno pro fakultyFEIUrčeno pro typy studianavazující magisterské
Výuku zajišťuje
Os. čís.JménoCvičícíPřednášející
JAK58 RNDr. Ondřej Jakl, CSc.
Rozsah výuky pro formy studia
Forma studiaZp.zak.Rozsah
prezenční Zápočet a zkouška 2+2
kombinovaná Zápočet a zkouška 18+18

Cíle předmětu vyjádřené dosaženými dovednostmi a kompetencemi

Přehled v oblasti návrhu, realizace a hodnocení paralelních algoritmů. Praktické osvojení paralelních programovacích technik pro vybrané víceprocesorové počítačové systémy. Pracovní znalosti v oblasti paralelních systémů a jejich programování, zejména: Samostatný návrh paralelních algoritmů, resp. paralelizace sekvenčních algoritmů. Praktická realizace paralelního algoritmu na bázi modelu předávání zpráv nebo sdílených proměnných. Analýza algoritmu a vyhodnocení implementace. Optimalizace a zvyšování efektivity.

Vyučovací metody

Přednášky
Cvičení (v učebně)
Projekt
Ostatní aktivity

Anotace

Kurz poskytne posluchačům základy pro aktivní práci v oblasti paralelních systémů, algoritmů a programování, přičemž se zaměřuje na praktickou tvorbu programů, aby byli s to využít dnešní výkonnou výpočetní techniku, od paralelních superpočítačů až po vícejádrové notebooky, pro výpočetně náročné aplikace z různých aplikačních oblastí. Důraz je kladen na práci s tzv. multipočítači, kde kooperace procesů je řešena na bázi předávání zpráv, diskutována však budou i specifika systémů se sdílenou pamětí (symetrických multiprocesorů). Cvičení jsou vesměs věnována praktickému návrhu paralelních algoritmů a jejich implementaci v prostředí PVM či MPI, OpenMP nebo třeba v paralelním Matlabu, a to na nejvýkonnější výpočetní technice VŠB-TUO (ve správě Centra informačních technologií), t.č. na síti pracovních stanic Ultra se vzdáleným přístupem na 32-procesorový klastr Termit a na čtyřprocesorový symetrický multiprocesor Quad.

Povinná literatura:

Sylabus I. Foster: Designing and building of parallel programs. Addison-Wesley, 1995 C. Lin, L. Snyder: Principles of Parallel Programming. Pearson, 2009 Al Geist et al.: PVM: Parallel Virtual Machine. A User's Guide and Tutorial for Networked Parallel Computing. The MIT Press, 1994. MPI: A Message-Passing Interface Standard. Message Passing Interface Forum, 2009.

Doporučená literatura:

K. Ježek et al.: Paralelní architektury a programy. ZČU Plzeň, 1997. B. Wilkinson, M. Allen: Parallel Programming. Prentice Hall, 1999. R. Chandra et al.: Parallel Programming in OpenMP. Morgan Kaufmann Publishers, 2001.

Forma způsobu ověření studijních výsledků a další požadavky na studenta

E-learning

Další požadavky na studenta

Prerekvizity

Předmět nemá žádné prerekvizity.

Korekvizity

Předmět nemá žádné korekvizity.

Osnova předmětu

Přednášky: Úvod do problematiky. Motivace paralelizace, historické poznámky a současné trendy. Souvislost s HPC - High Performance Computing. Vymezení oblastí zájmu. Rekapitulace předpokládaných vědomostí. Paralelní výpočetní systémy. Flynnova klasifikace a dělení z hlediska paměti. Užívaná terminologie. Přehled technických řešení. Příklady superpočítačů. Klastry. Propojovací subsystémy. Technická řešení (sběrnice, hyperkrychle, vícestupňová síť atd.). Důsledky pro návrh paralelních algoritmů. Uvedení do programování paralelních aplikací. Programové modely (přehled): předávání zpráv, sdílení proměnných, datově paralelní přístup. Příklady. Implementační prostředky. Postup při vytváření paralelní aplikace. Model předávání zpráv. Principy a charakteristiky. Druhy komunikace, základní pojmy. Implementační předpoklady. Systémy předávání zpráv, jejich hlavní reprezentanti. Parallel Virtual Machine. Úvod do PVM, historické poznámky. Komponenty a uživatelské rozhraní. Implementace na dostupných platformách (Termit, IBM SP). Ilustrativní příklad. Parallel Virtual Machine (pokračování) Přehled konstruktů a knihovních procedur: řízení procesů, získávání informací, předávání zpráv aj. Řešení kolektivní komunikace. Pokročilé techniky. Vývoj paralelních algoritmů. Dekompozice datová, funkční. Komunikační analýza. Aglomerace. Mapovaní na procesory. Techniky vyvažování zátěže. Příklady, perfektně paralelní úlohy. Message Passing Interface. Vznik standardu MPI a jeho vývoj. Porovnání s PVM, specifika (odvozené datové typy, virtuální topologie apod.) Analýza paralelních algoritmů. Výkonnostní modely, metriky. Kvantifikace doby provádění. Urychlení, účinnost a cena. Superlineární urychlení. Amdahlův zákon. Experimentální studie. Analýza paralelních algoritmů (pokračování). Škálovatelnost, pevná a proměnná velikost problému. Asymptotická analýza. Programování symetrických multiprocesorů. Technické předpoklady. Nízkoúrovňové prostředky, vazby na operační systém. Programování na bázi vláken. Standard OpenMP. Motivační a historické poznámky. Konstrukty (paralelní oblasti, direktivy pro rozdělení výpočetní zátěže, synchronizace a zamykání...). Příklad. Vybrané paralelní algoritmy. Algoritmy numerické matematiky, třídění, grafové algoritmy aj. Shrnutí a trendy. Další prostředky pro vývoj paralelních aplikací (ADA, High Performance Fortran apod.). Vývoj v oblasti hardwaru. Paralelní programování na osobních počítačích. Počítačové laboratoře: Organizace cvičení. Úlohy na "paralelní myšlení" Seznámení s pracovním prostředím a výpočetními systémy. Multiprocesor Quad a klastry Termit (Ultra): podpora paralelního programování, implementace PVM. Vytváření paralelních programů pod PVM. Řízení PVM. Spuštění virtuálního stroje. Kompilace a běh PVM programů. Jednoduché programy pod PVM. Programy typu SPMD. Techniky předávání zpráv. Měření časů. Datová dekompozice. Perfektne paralelni uloha. Paralelizace numerické integrace. Datová dekompozice (pokr.). Dynamická tvorba procesů. Funkční dekompozice. Simulace technologických procesů. Blokovací a neblokovací příjem. Kolektivní komunikace v PVM. XPVM. Problematika ladění. Vizualizace běhu paralelní aplikace (XPVM). Analýza algoritmů. Výkonnostní model doby běhu Jacobiho metody konečných diferencí v 3D. MPI. Dostupné implementace MPI: MPICH, LAM (Termit, Quad). Demonstrační příklad. MPI (pokr.). Kolektivni komunikace Pokročilé techniky. Program pro paralelní výpočet teplotního průběhu. Referaty. Prezentace semestrálních projektů.

Podmínky absolvování předmětu

Prezenční forma (platnost od: 2008/2009 zimní semestr)
Název úlohyTyp úlohyMax. počet bodů
(akt. za podúlohy)
Min. počet bodů
Zápočet a zkouška Zápočet a zkouška 100 (100) 51
        Zápočet Zápočet 45  20
        Zkouška Zkouška 55 (55) 0
                Aktivita Jiný typ úlohy 20  0
                Ústní zkouška Ústní zkouška 35  0
Rozsah povinné účasti:

Zobrazit historii

Výskyt ve studijních plánech

Akademický rokProgramObor/spec.Spec.FormaJazyk výuky Konz. stř.RočníkZLTyp povinnosti
2009/2010 (N2647) Informační a komunikační technologie (1103T031) Výpočetní matematika P čeština Ostrava 1 volitelný odborný stu. plán
2009/2010 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 2 volitelný odborný stu. plán
2009/2010 (N2647) Informační a komunikační technologie (1103T031) Výpočetní matematika K čeština Ostrava 1 volitelný odborný stu. plán
2009/2010 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 2 volitelný odborný stu. plán
2009/2010 (N2646) Informační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 3 volitelný odborný stu. plán
2008/2009 (N2646) Informační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 3 volitelný odborný stu. plán
2008/2009 (N2647) Informační a komunikační technologie (1103T031) Výpočetní matematika P čeština Ostrava 1 volitelný odborný stu. plán
2008/2009 (N2647) Informační a komunikační technologie (1103T031) Výpočetní matematika K čeština Ostrava 1 volitelný odborný stu. plán
2008/2009 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 2 volitelný odborný stu. plán
2008/2009 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 2 volitelný odborný stu. plán
2008/2009 (N2646) Informační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 3 volitelný odborný stu. plán
2007/2008 (N2646) Informační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 3 volitelný odborný stu. plán
2007/2008 (N2646) Informační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 3 volitelný odborný stu. plán
2007/2008 (N2647) Informační a komunikační technologie (1103T031) Výpočetní matematika P čeština Ostrava 1 volitelný odborný stu. plán
2007/2008 (N2647) Informační a komunikační technologie (1103T031) Výpočetní matematika K čeština Ostrava 1 volitelný odborný stu. plán
2007/2008 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 2 volitelný odborný stu. plán
2007/2008 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 2 volitelný odborný stu. plán
2006/2007 (N2646) Informační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 3 volitelný odborný stu. plán
2006/2007 (N2646) Informační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 3 volitelný odborný stu. plán
2006/2007 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 2 volitelný odborný stu. plán
2006/2007 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 2 volitelný odborný stu. plán
2005/2006 (N2646) Informační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 3 volitelný odborný stu. plán
2005/2006 (N2646) Informační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 3 volitelný odborný stu. plán
2004/2005 (N2646) Informační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 3 volitelný odborný stu. plán
2004/2005 (N2646) Informační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 3 volitelný odborný stu. plán
2003/2004 (N2646) Informační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 3 volitelný odborný stu. plán
2003/2004 (N2646) Informační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 3 volitelný odborný stu. plán

Výskyt ve speciálních blocích

Název blokuAkademický rokForma studiaJazyk výuky RočníkZLTyp blokuVlastník bloku