Paralelné programovanie


Anotácia

Predmet poskytuje znalosti v oblasti paralelného programovania z pohľadu inžinierskej disciplíny, ktorá je založená na poznaní metodologických postupov pri tvorbe paralelných programov. Cieľom je dosiahnutie efektívnosti, ktorá je založená na správnom návrhu, so vzťahom na riešený problém a cieľovú architektúru, na poznaní vlastností paralelných problémov a metóde analýzy a experimentálneho hodnotenia efektívnosti ako aj voľby vhodných prostriedkov pre výpočty vysokého výkonu.

Obsah prednášok

  1. Vzťah paralelných architektúr a paralelných problémov
  2. Vlastnosti paralelných algoritmov a paralelných problémov
  3. Vzťah paralelných problémov a druhov paralelizmu
  4. Metodológia návrhu paralelných algoritmov – dekompozícia a komunikácia
  5. Metodológia návrhu paralelných algoritmov – zhlukovanie, priraďovanie a plánovanie úloh
  6. Modelovanie a hodnotenie efektívnosti paralelného výpočtu
  7. Odovzdávanie správ v MPI pri komunikácii medzi dvoma procesmi a skupinovej komunikácii
  8. Skupinová komunikácia v MPI
  9. Modulárny návrh paralelných algoritmov
  10. Údajové typy MPI a ich aplikácia
  11. Využitie komunikátorov a topológii procesov MPI pri dekompozícii paralelných problémov
  12. Expanzívny a masívny paralelizmus v modeli údajového paralelizmu
Okruhy otázok na skúšku

Organizácia cvičení

5. cvičenie: Vyriešenie úlohy 1, 2 a 3 zadania,  viď súbor zadanie.pdf.

8. cvičenie: Vyriešenie úlohy 4 a 5 zadania

10. cvičenie: Vyriešenie úlohy 6 a 7 zadania

Podmienka udelenia zápočtu

Spracovanie referátu pre vyriešené úlohy počas laboratórnych cvičení.

Zdrojový text zadania pre spracovanie v systéme LaTeX2e, kódovaný ako text - Stredoeurópsky Windows je v súbore zadanie.tex. Použitý obrázok je v súbore obr.jpg. Zdrojové súbory sú nastavené pre spracovanie pdftex-om, je možné ich modifikovať pre spracovanie cslatex-om (menej výhodné, lebo treba potom použiť obrázky .eps a tie sú rozsiahlejšie)

Príklady komunikácie medzi dvoma procesmi a pri skupinovej komunikácie sú v súbore sample1.c a sample2.c a základné príkazy pre prácu v systéme LAM/MPI v PC Centre sú uvedené v textovom súbore manual.txt

Poznámka: Súbory zadanie.tex, sample1.c a sample2.c možno získať tiež zo súboru zadanie.zip.


Základná literatúra

  1. Kollár Ján: Metódy a prostriedky pre výkonné paralelné výpočty. Academic Press elfa, s.r.o., Košice, 2003, Edícia monografií FEI TU v Košiciach, 110 pp., dostupná pre študentov predmetu Paralelné programovanie KPI v elektronickej kódovanej forme

Doplnková literatúra

  1. Kollár, Ján: Paralelné programovanie.  Academic Press elfa, s.r.o., Košice, 1999,  96pp. (Petriho siete, systémy reálneho času, operačné systémy)
  2. 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).
  3. Gibbons S.A., Rytter, W.: Efficient Parallel Algorithms. Cambridge Univ. Press, 1987. 
  4. Peter S. Pacheco: A User's Guide to MPI. Dept. of Mathematics, Univ of San Francisco, CA, March 30 1998, (postscript)

Ďalšie zdroje v anglickom jazyku

Documents: Message Passing Interface Forum    MPI-2.0
Implementation: LAM/MPI Parallel Computing   What is MPI    Getting LAM/MPI
Motivation Application   Avalanche simulation