Paralelní a distribuované systémy
Garant: doc. RNDr. Jiří Barnat, Ph.D.
Obor je zaměřen na získání teoretických znalostí a praktických dovedností potřebných pro analýzu, návrh a implementaci paralelních aplikací. Studenti oboru se naučí vytvářet aplikace, které pro řešení jedné úlohy efektivně využijí výpočetní sílu vícejádrových procesorů osazených v jedné pracovní stanici, ale i agregovanou výpočetní sílu mnoha (vícejádrových a víceprocesorových) počítačů spojených datovou sítí. Obor seznamuje studenty též s technologií paralelních hardwarových akcelerátorů, jakými jsou například soudobé grafické karty.
Součástí oboru je rovněž studium odpovídajících teoretických poznatků. Studenti oboru se seznámí s principy návrhu a implementace paralelních aplikací, s teorií paralelních algoritmů a s problematikou modelování souběžných systémů a jejich analýzy a verifikace. V rámci projetkové přípravy se studenti seznámí s možností využití paralelních technik při realizaci rozsáhlých výpočtů, zejména vědeckých a technických.
Absolventi oboru najdou uplatnění v praxi nebo mohou pokračovat ve studiu v navazujících magisterských oborech.
Požadavky
- Absolvovat všechny povinné předměty oboru nejvyšší formou ukončení.
- Splnit požadavky společného základu.
Povinné předměty
- IB109 Návrh a implementace paralelních systémů (2+2 kr.)
- IV003 Algoritmy a datové struktury II (3+2 kr.)
- IV010 Komunikace a paralelismus (2+2 kr.)
- IV100 Paralelní a distribuované výpočty (2+2 kr.)
- IV113 Úvod do validace a verifikace (2+2 kr.)
- PB071 Úvod do jazyka C (4+2 kr.)
- PV197 GPU Programming (2+2 kr.)
Doporučení
Z volby PB161/PB162 se doporučuje PB161, případně PB161 i PB162. Pro teoretičtěji zaměřené navazující studium se z volby IB102 / IB005 + IB107 doporučuje IB005 (2. semestr) a IB107 (5. semestr).
Doporučený průchod studiem
1. semestr
- IB000 Matematické základy informatiky (3+2 kr.)
- MB101 Lineární modely (4+2 kr.)
- PB151 Výpočetní systémy (3+2 kr.)
- IB111 Úvod do programování skrze Python (4+2 kr.) nebo IB001 Úvod do programování skrze C (4+2 kr.) (viz poznámky k úvodnímu programování)
- VB035 English I (2 kr.)
- Tělesná výchova (1 kr.)
- Všeobecně vzdělávací předmět I (1 kr.)
2. semestr
- IB002 Algoritmy a datové struktury I (4+2 kr.)
- IB101 Úvod do logiky (4+2 kr.)
- MB102 Diferenciální a integrální počet (4+2 kr.)
- PB071 Úvod do jazyka C (4+2 kr.)
- VB001 Specialist English (1 kr.)
- VB036 English II (2 kr.)
- Všeobecně vzdělávací předmět II (2+1 kr.)
3. semestr
- IB015 Neimperativní programování (4+2 kr.)
- IB102 Automaty, gramatiky a složitost (5+2 kr.)
- MB103 Spojité modely a statistika (4+2 kr.)
- PB154 Základy databázových systémů (3+2 kr.)
- PB161 Programování v jazyce C++ (4+2 kr.) (PB162 Programování v jazyce Java (4+2 kr.))
4. semestr
- IB109 Návrh a implementace paralelních systémů (2+2 kr.)
- IV003 Algoritmy a datové struktury II (3+2 kr.)
- IV010 Komunikace a paralelismus (2+2 kr.)
- MB104 Diskrétní matematika (4+2 kr.)
- PB152 Operační systémy (2+2 kr.) (PB153 Operační systémy a jejich rozhraní (2+2 kr.))
- VB000 Základy odborného stylu (2+1 kr.)
5. semestr
- IV100 Paralelní a distribuované výpočty (2+2 kr.)
- IV112 Projekt z programování paralelních aplikací (5 kr.)
- IV113 Úvod do validace a verifikace (2+2 kr.)
- PB007 Softwarové inženýrství I (4+2 kr.)
- PV197 GPU Programming (2+2 kr.)
- SBAPR Bakalářská práce (3 kr.)
- Tělesná výchova (1 kr.)