Obsahem této práce je seznámení se s principy paralelního programování, jeho základních rozdělení a implementace paralelních metod do stávajících programů v programovacím jazyce C resp. C++.
Annotation in English
The aim of this thesis is to acknowledge with principles of parallel programming, its basic divisions and implementations of parallel methods into already existing programs in C or C++ programming language.
Obsahem této práce je seznámení se s principy paralelního programování, jeho základních rozdělení a implementace paralelních metod do stávajících programů v programovacím jazyce C resp. C++.
Annotation in English
The aim of this thesis is to acknowledge with principles of parallel programming, its basic divisions and implementations of parallel methods into already existing programs in C or C++ programming language.
Vytvořte literární rešerši popisující:
- vlastnosti základních typů paralelních systémů (Flynnova taxonomie)
- vlastnost PRAM modelů a jejich vzájemné vztahy, vztah k SMP a možnosti simulací na jiných než SMP systémech
- základní metody paralelizace sekvenčních úloh
- problémy a překážky vznikající při paralelizaci úloh na výpočetních systémech
- vlastnosti a možnosti jazyk OpenMP při paralelizaci výpočetních úloh a jiných algoritmů na SMP systémech.
V praktické části dokumentu popište:
- základní paralelizační techniky, včetně analýzy časové a paměťové složitostí a implementace příkladů pomocí jazykce C/C++ a knihovny OpenMP
- paralelizaci základních výpočetních a datových algoritmů, včetně analýzy časové a paměťové složitosti a implementace v jazyce C/C++ s pomocí knihovny OpenMP.
Proveďte měření reálné doby běhu paralelizovaných algoritmů pro 1- 8 procesorů a výsledky popište a zpracujte ve formě přehledných tabulek. Komentujte dosažené výsledky.
Research Plan
Vytvořte literární rešerši popisující:
- vlastnosti základních typů paralelních systémů (Flynnova taxonomie)
- vlastnost PRAM modelů a jejich vzájemné vztahy, vztah k SMP a možnosti simulací na jiných než SMP systémech
- základní metody paralelizace sekvenčních úloh
- problémy a překážky vznikající při paralelizaci úloh na výpočetních systémech
- vlastnosti a možnosti jazyk OpenMP při paralelizaci výpočetních úloh a jiných algoritmů na SMP systémech.
V praktické části dokumentu popište:
- základní paralelizační techniky, včetně analýzy časové a paměťové složitostí a implementace příkladů pomocí jazykce C/C++ a knihovny OpenMP
- paralelizaci základních výpočetních a datových algoritmů, včetně analýzy časové a paměťové složitosti a implementace v jazyce C/C++ s pomocí knihovny OpenMP.
Proveďte měření reálné doby běhu paralelizovaných algoritmů pro 1- 8 procesorů a výsledky popište a zpracujte ve formě přehledných tabulek. Komentujte dosažené výsledky.
Recommended resources
Brian W. Kernighan, Dennis M. Ritchie, Programovací jazyk C, Computer Press, 2006, ISBN 80-251-0897-X.
Stephen Prata, Mistrovství v C++, 3. vydání, Computer Press, 2007, ISBN 978-80-251-1749-1.
Chandra, R., Dagum, L., Kohr, D., Maydan, D., McDonald, J., Menon, R., Parallel Programming in OpenMP, Morgan Kaufmann Publishersm, 2001, ISBN 1-55860-671-8.
Prof. P. Tvrdík, Paralelní systémy a algoritmy, Nakladatelství ČVUT, 2006, ISBN 80-01-03565-4.
J. Keller, Ch. W. Keßler, J. L. Träff, Practical PRAM Programming, John Wiley & Sons, Inc., 2001, ISBN 0-471-35351-5.
Jesse Liberty, Naučte se C++ za 21 dní, Computer Press, 2002, ISBN 80-7226-774-4.
MSDN:OpenMP in Visual C++ [online]. Dostupný z WWW: http://msdn2.microsoft.com/en-us/library/tt15eb9t.aspx
OpenMP [online]. Dostupný z WWW: http://www.openmp.org/blog/
OpenMP [online]. Dostupný z WWW: https://computing.llnl.gov/tutorials/openMP/
Recommended resources
Brian W. Kernighan, Dennis M. Ritchie, Programovací jazyk C, Computer Press, 2006, ISBN 80-251-0897-X.
Stephen Prata, Mistrovství v C++, 3. vydání, Computer Press, 2007, ISBN 978-80-251-1749-1.
Chandra, R., Dagum, L., Kohr, D., Maydan, D., McDonald, J., Menon, R., Parallel Programming in OpenMP, Morgan Kaufmann Publishersm, 2001, ISBN 1-55860-671-8.
Prof. P. Tvrdík, Paralelní systémy a algoritmy, Nakladatelství ČVUT, 2006, ISBN 80-01-03565-4.
J. Keller, Ch. W. Keßler, J. L. Träff, Practical PRAM Programming, John Wiley & Sons, Inc., 2001, ISBN 0-471-35351-5.
Jesse Liberty, Naučte se C++ za 21 dní, Computer Press, 2002, ISBN 80-7226-774-4.
MSDN:OpenMP in Visual C++ [online]. Dostupný z WWW: http://msdn2.microsoft.com/en-us/library/tt15eb9t.aspx
OpenMP [online]. Dostupný z WWW: http://www.openmp.org/blog/
OpenMP [online]. Dostupný z WWW: https://computing.llnl.gov/tutorials/openMP/