460-4060/01 – Programování v prostředí HPC (PvP HPC)
Garantující katedra | Katedra informatiky | Kredity | 4 |
Garant předmětu | Mgr. Branislav Jansík, Ph.D. | Garant verze předmětu | Mgr. Branislav Jansík, Ph.D. |
Úroveň studia | pregraduální nebo graduální | Povinnost | volitelný odborný |
Ročník | | Semestr | zimní |
| | Jazyk výuky | čeština |
Rok zavedení | 2013/2014 | Rok zrušení | 2017/2018 |
Určeno pro fakulty | FEI | Určeno pro typy studia | navazující magisterské |
Cíle předmětu vyjádřené dosaženými dovednostmi a kompetencemi
Po absolvování kurzu posluchači porozumí problémům z oblasti vysoce výkonného počítání, porozumí architektuře hardwarových a softwarových řešení v dané oblasti a budou v dané oblasti umět vytvářet programy a řešit konkrétní aplikační úlohy.
Vyučovací metody
Přednášky
Cvičení (v učebně)
Anotace
Předmět se zabývá programováním v prostředí vysoce výkonných počítačů. Probírány jsou základní i pokročilé techniky programování v tomto prostředí. Diskutováno je rovněž řešení typických úloh a architektura super výkonných počítačů.
Povinná literatura:
1. Pacheco P.: An Introduction to Parallel Programming, Morgan Kaufmann, 2011, ISBN-13: 978-0123742605 ISBN-10: 0123742609
2. Hager G.:Introduction to High Performance Computing for Scientists and Engineers, Chapman & Hall/CRC Computational Science, 2010, ISBN-13:
978-1439811924 ISBN-10: 143981192X
3. http://software.intel.com/sites/default/files/319433-014.pdf
4. http://www.intel.com/content/dam/doc/manual/64-ia-32-architectures-optimization-manual.pdf
5. http://openmp.org/wp/
6. https://computing.llnl.gov/tutorials/openMP/
7. http://www.mpi-forum.org/
8. http://www.open-mpi.org/
9.http://icl.cs.utk.edu/papi/
10. http://www.netlib.org/scalapack/slug/index.html
Doporučená literatura:
http://software.intel.com/sites/default/files/319433-014.pdf
http://www.intel.com/content/dam/doc/manual/64-ia-32-architectures-optimization-manual.pdf
Forma způsobu ověření studijních výsledků a další požadavky na studenta
Podmínky udělení zápočtu: Vypracování úloh zadaných na cvičení a úlohy ke zkoušce (viz dále).
Zkouška
Zkouška bude spočívat v demonstraci a obhajobě hybridního OpenMP/MPI programu s využitím AVX vektorizace řešícího zadaný problém.
E-learning
Další požadavky na studenta
Zájem o oblast předmětu.
Prerekvizity
Předmět nemá žádné prerekvizity.
Korekvizity
Předmět nemá žádné korekvizity.
Osnova předmětu
Témata přednášek
● Úvod do high performace computing (HPC), architektura procesoru x86, principy optimalizace, měření výkonu přístupem na hardware performance counters, knihovna PAPI, nástroj Valgrind.
● Vektorové SIMD programování, využití instrukcí AVX. HPC problémy a lineární algebra, použití knihoven BLAS.
● Architektura superpočítačů, úvod do prostředí superpočítače, úvod do paralelního počítání, koncepty a terminologie paralelního programování, úvod do OpenMP a MPI, kompilace OpenMP a MPI programů, spouštění paralelních procesů.
● Základní OpenMP techniky, základní MPI komunikace, debuggování a profilování paralelních programů.
● Pokročilé OpenMP a hybridní programování.
● Granularita, loadbalancing a metascheduling. Implementace Master-slave v MPI.
● Pokročilá témata: Záludnosti programování v OpenMP, MPI komunikátory a
grupy, neblokující MPI komunikace, kolektivní MPI operace.
● Dynamické MPI, intrakomunikátory a interkomunikátory, spojovaní MPI
procesů.
● Jednostranná MPI komunikace, MPI okna, rámce a epochy.
● MPI a paralelní I/O.
● Integrace BLACS a MPI, knihovny pro paralelní distribuovanou lineární algebru ScaLapack a PBLAS.
● Příklady HPC aplikací, řešení lineárních rovnic v paralelním distribuovaném režimu.
Témata cvičení
Cvičení budou korespondovat s přednáškami. Témata cvičení budou následující:
● Architektury počítačů; výkon počítače a jeho měření
● Vektorové programování
● Využití knihoven lineární algebry v paralelních prostředích
● Programování v OpenMP
● Programování v MPI
● Příklady HPC aplikací
Podmínky absolvování předmětu
Výskyt ve studijních plánech
Výskyt ve speciálních blocích
Hodnocení Výuky