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 (Quad, Ultra). 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.
Uplatnění v semestrálních projektech.
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í (High Performance Fortran, paralelní Matlab 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 síť 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.
Konzultace semestrálních projektů (průběžně na cvičeních).
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 (Quad, Ultra). 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ů.
Ú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 (Quad, Ultra). 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.
Uplatnění v semestrálních projektech.
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í (High Performance Fortran, paralelní Matlab 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 síť 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.
Konzultace semestrálních projektů (průběžně na cvičeních).
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 (Quad, Ultra). 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ů.