Popis:
Otázka č. 1: Ciele paralelného programovania paralelných výpočtov a vzťah k programovaniu systémov reálneho casu. Charakteristika a využitie paralelných architektúr. Vyváženosť a dodatočné náklady pri paralelných výpočtoch.
Paralelné programovanie – paralelné algoritmy pre rýchle výpočty a) pseudoparalelné (tlač na viacerých tlačiarňách naraz) b) paralelné (systém reálneho času, výmena pomocou správ)
- paralené programy v systémo
Vypocet realneho casu podla architekury-
- pseudoparalelné (multiprogramovanie) – jednoprocesorova arch. s pridelovanim casu
- paralelné(viacnasobne spracovanie) – viacprocesorova arch. so spolocnou pamatou
(distribuovane spracovanie) – viacprocesorova arch. bez spolocnej pamate
Ciele paralelných výpoctov
- podstatne znizit cas vypctu oproti sekvencnemu
- spracovat naraz velke mnozstvo dat
Nevýhody PP – nie vždy je možné efektívne program paralelizovať, medzi efektívnymi par. problémami a druhom použitej paralelnej architektúry je silný vzťah, pred implementáciou paralelného problému je potrebné ho dekomponovať
Cieľ dekompozície – zabezpečiť , aby paralelný systém mal dostatočné zdroje, treba naplánovať záťaž na jednotlivých procesoch, aby sa minimalizovali náklady na pamäť, komunikáciu ...
Vyvažovanie – program je vyvážený dobre, ak práca je rozložená najefektívnejšie na jednotlivých procesoroch a každý proces trávi väčšinu času výpočtom, čas strávený na komunikáciu je minimálny
...
Otázka č. 2: Vlastnosti paralelných algoritmov a paralelných problémov, definícia inherentného, ohraniceného a neohraniceného paralelizmu, tried efektívne a optimálne paralelizovatelných problémov a téza paralelného výpočtu.
Paralelné problémy a algoritmy
Inherentný paralelizmus – ak je problém inherentne paralelný možno ho riešiť paralelným algoritmom aj sekvenčným algoritmom.
2 algoritmy tej istej funkcie sa môžu líšiť v skupine inherentného paralelizmu
Neohraničený paralelný algoritmus – je vyjadrený paralelným časom výpočtu bez ohľadu na zdroje počítačovej architektúry
Ohraničený paralelný algoritmus - je vyjadrený paralelným časom výpočtu vo vzťahu na zdroje počítačovej architektúry
Efektívne a optimálne paralelné algoritmy - nech k є Z a n je veľkosť problému, potom efektívny paralelný algoritmus leží v poly logaritmickom čase O(log k n) pri počte procesov nk . Ak problém nie je efektívne algoritm. – neoplatí sa ho paralelizovať
Optimálny paralelný algoritmus – súčin paralelného času a počtu procesorov je lineárny
- nezávisí na veľkosti problému pT = δ (n)
Súhrn nákladov pri paralelnom výpočte
- Náklady na komunikáciu a synchronizáciu
- Ťažko paralel. časti kódu
- Algoritmické náklady – alg. , ktorý je použitý – namiesto najrýchlejšieho sekvenčného algoritmu, môže obsahovať väčší počet operácií ako sekvenčný
- Softvérové náklady spojené s indexovaním , volaním procedúr, spracovaním cyklov
- Nevyváženosť záťaže
...
Kľúčové slová:
paralelné programovanie
skúška
Obsah:
- 1. Ciele paralelného programovania paralelných výpoctov a vztah k programovaniu systémov reálneho casu. Charakteristika a využitie paralelných architektúr. Vyváženost a dodatocné náklady pri paralelných výpoctoch.
2. Vlastnosti paralelných algoritmov a paralelných problémov, definícia inherentného, ohraniceného a neohraniceného paralelizmu, tried efektívne a optimálne paralelizovatelných problémov a téza paralelného výpoctu.
3. Dekompozícia paralelných problémov vo vztahu na jednotlivé druhy paralelizmu, využitie paralelizmu v aplikáciách vysokého výkonu a zodpovedajúce programové modely a paralelné architektúry, ich výhody a nevýhody.
4. Definícia zrýchlenia a efektívnosti paralelného výpoctu a celkového zrýchlenia a efektívnosti. Odvodenie Amdahlovho pravidla pre neškálovatelné a škálovatelné problémy, porovnanie obidvoch prístupov. Meranie a výpocet podielu paralelného kódu.
5. Spôsoby a prostriedky využitia masívneho paralelizmu v programovom modeli údajového paralelizmu. Hlavné metódy využitia expanzívneho paralelizmu v programovom modeli údajového paralelizmu. Odvodenie redukovaného poctu procesorov pri zachovaní optimálneho paralelného algoritmu.
6. Charakteristika programového modelu odovzdávania správ, definícia a dôsledok latentnosti. Charakteristika modelu SPMD a MPMD. Základné druhy operácii pre odovzdávanie správ medzi dvoma procesmi v MPI a ich sémantika z hladiska volania, návratu a ukoncenia procedúry MPI.
7. Blokujúce a neblokujúce operácie MPI, ich porovnanie z hladiska využitia zdrojov a zablokovania výpoctu. Vztah k asynchrónnemu a synchrónnemu odovzdávaniu správ - rendezvous. Poradie správ a vztah k deterministickému výpoctu.
8. Princíp skupinovej komunikácie v MPI, definícia hlavného procesu, skupinové operácie v MPI, ich syntax, sémantika a aplikácia.
9. Základné typy a odvodené typy MPI a spôsob definície nového typu. Zobrazenie typu, posunutie, rozsah, spodná a horná hranica nového typu. Definícia, porovnanie a využitie odvodených typov. Stlácanie a porovnanie komunikácie na základe odvodeného typu oproti komunikácii prostredníctvom stlácania.
10. Dôvody a spôsoby konštrukcie nových komunikátorov v MPI, rozdiel medzi skupinami procesov a komunikátormi. Rozdiel medzi intrakomunikátormi a interkomunikátormi. Druhy topológií procesov a ich uplatnenie v komunikátoroch.
Zdroje:
- Kolár, Ján: Paralelne programovanie. Academic Press elfa, s.r.o., Košice, 1999, 96pp. (Petriho siete, systémy reálneho času, operačné systémy)
- Ian Foster: Designing and Building Parallel Programs. http://www-unix.mcs.anl.gov/dbpp/text/book.html (podmnožina zákl.literatúry v angl. jazyku).
- Gibbons S.A., Rytter, W.: Efficient Parallel Algorithms. Cambridge Univ. Press, 1987.
- Peter S. Pacheco: A User's Guide to MPI. Dept. of Mathematics, Univ of San Francisco, CA, March 30 1998, (postscript)