Paralelné programovanie

Vyučujúci

Zaradený v študijných programoch

Výsledky vzdelávania

Výsledky vzdelávania:
Študenti získajú nasledujúcu kompetentnosti:
A. v oblasti s pokročilejšími princípmi objektovo orientovaného programovania v jazyku Python.
B. s paradigmou sekvenčného, súbežného (konkurentného) a paralelného programovania.
C. zoznámiť študentov s variantmi paralelizmu a súbežného výpočtu.
D. implementovať konkurentné verzie pôvodne sekvenčných algoritmov vyvinutých v jazyku Python.
E. aplikovať výkonnostné metriky paralelného a konkurentného kódu.
F. implementovať Python nástroje pre konkurentné a paralelné programovanie (vlákna, procesy, zámky, ...).
G. Pochopiť výhody, limity a vlastnosti paralelného programu.
H. Zistiť, ako vytvoriť responzívny a vysoko výkonný program.
I. Implementovať paralelný algoritmus na grafických procesoroch použitím modulu PyCUDA.
Po absolvovaní predmetu má byť študent schopný:
A. Poslucháči ovládnu paradigmu konkurentného a paralelného programovania v objektovom prostredí.
B. Poslucháči sa naučia vytvárať konkurentné a paralelné algoritmy a programy, ktoré dokážu využiť všetku výpočtovú kapacitu variabilne výkonných počítačových systémov.
C. Poslucháči získajú informácie o vláknach, procesoch, zámkoch, synchronizácii, komunikácii, deadlock-ov (uviaznutí) a ďalších.
D. Poslucháči pochopia výhody, limity a vlastnosti paralelného programu.
F. Poslucháči zlepšia svoje programátorské schopnosti v Pythone pomocou pokročilejších, viacvláknových a viacprocesových úloh.

Stručná osnova predmetu

1. algoritmus a programovacie jazyky,
2. programovanie v Pythone, dátové typy,
3. programovanie v Pythone, princípy objektovo orientovaného programovania,
4· paradigma konkurentného a paralelného programovania z pohľadu teoretickej a aplikovanej informatiky,
5. prínosy a riziká konkurentných a paralelných algoritmov,
6. manažment pamäte paralelných a konkurentných algoritmov,
7. vlákna, procesy, synchronizácia, zámky,
8. využitie Python knižníc pre konkurentné a paralelné algoritmy,
9. komunikácia medzi procesmi a vláknami,
10. deadlock a návrhy riešení,
11. paralelné programovanie využitím grafických procesorov,
12. paralelné architektúry,
13. implementácia paralelizmu v programovacom jazyku Python

Odporúčaná literatúra

1. Gove, D.: Programování aplikací pro vícejádrové procesory: Vydavateľstvo Computer press, Addison Wesley, 2011. ISBN: 978-80-251-3487-0.
2. Hanák, J.: Moderné paralelné programovanie, 2. vydanie. Bratislava : Vydavateľstvo EKONÓM, 2013.
3. Ben-Ari M.: Principles of Concurrent and Distributed Programming, 2nd Edition. Addison Wesley, 2006. ISBN 032131283X3. Andrews G. R.: Foundations of Multithreaded, Parallel, and Distributed Programming. Addison-Wesley, 2000. ISBN 0201357526

Podmienky na absolvovanie predmetu

samostatná práca
kombinovaná skúška
1. Aktivita na cvičení (40 %). Overuje sa dosiahnutá úroveň schopností A, - E..
2. Kombinovaná skúška (60 %, z toho písomná časť skúšky 30 % a ústna časť skúšky 30 %). Teoretickou časťou sa overuje dosiahnutá úroveň kompetentností A, - I..

Pracovné zaťaženie študenta

Pracovné zaťaženie študenta (v hodinách): 4 kreditov x 26 h = 104 h
Rozdelenie pracovného zaťaženia študenta
účasť na cvičeniach, seminároch 26 h,
príprava na semináre 26 h,
príprava na samostatnú písomnú prácu 26 h,
príprava na skúšku 26 h.

Jazyk, ktorého znalosť je potrebná na absolvovanie predmetu

slovenský

Dátum schválenia: 10.02.2023

Dátum poslednej zmeny: 18.05.2022

Dátum schválenia: 10.02.2023

Dátum poslednej zmeny: 18.05.2022