Paralelné programovanie a distribuované systémy

A.D. MMXXII

Adresa servera Discord https://discord.gg/WGNAE8JrJJ

Prednáška a seminár/cvičenie prebiehajú pomocou služby Google meet na adrese https://meet.google.com/oot-adcf-xyi

Organizácia
Prednášky
Cvičenia
Podmienky
Literatúra

Organizácia predmetu


Predmet je členený do nasledujúcich aktivít:

  • Prednášky: 2 hodiny týždenne podľa rozvrhu (utorok 8:00–9:40)
  • Prezenčná forma štúdia: cvičenie 2 hodiny týždenne podľa rozvrhu v miestnosti C-802 (utorok 13:00–14:40 a 15:00–16:40, streda 8:00–9:40)
  • Dištančná forma štúdia (spoločný seminár spojený s cvičením):
    • spoločný seminár 1 hodina týždenne v stredu 8:00–8:50
    • spoločné cvičenie 1 hodina týždenne v stredu 8:50–9:40
  • Samostatné domáce štúdium

Prednáška:

Prezenčná forma štúdia: utorok, 8.00–9.40, miestnosť C–801

Dištančná forma štúdia: utorok, 8.00–9.40, Google meet https://meet.google.com/oot-adcf-xyi

Cvičenia:

Cvičenia sú v utorok a v stredu:

  • V prípade prezenčnej formy štúdia v miestnosti C–802 v časoch
    • utorok 13.00–14.40
    • utorok 15.00–16.40
    • streda 8.00–9.40
  • V prípade dištančnej formy štúdia pomocou služby Google meet https://meet.google.com/oot-adcf-xyi v rámci seminára (streda 8.00–9.40) podľa potreby

Seminár:

Iba v prípade dištančnej formy štúdia, v stredu v čase 8:00–9:40 pomocou služby Google meet https://meet.google.com/oot-adcf-xyi. V rámci neho bude realizované aj spoločné cvičenie.

Konzultácie:

Dohodou (na prednáške/na cvičení/na seminári/na Discorde/mailom/poštou/osobne/na brigáde…).

Cieľ predmetu

Obsahom predmetu je analýza rôznych synchronizačných vzorov. Naším cieľom je ponúknuť študentom možnosť oboznámiť sa s rôznymi synchronizačnými problémami spolu s ich riešením. Synchronizačnými problémami rozumieme riešenie koordinácie súbežne (azda aj súčasne) vykonávaných úloh s cieľom zabezpečiť integritu údajov, s ktorými jednotlivé úlohy pracujú; samozrejme zároveň požadujeme dosiahnutie korektného výsledku výpočtu.

V druhej časti semestra zameriavame pozornosť na niektoré moderné oblasti programovania, ktoré sa rýchlo rozvíjajú: paralelné výpočty na grafických kartách a asynchrónne programovanie.

Plán semestra

Prednášky sledujú obsah knižky „The Little Book of Semaphores“ od autora menom Allen B. Downey (zdroj napr. na http://greenteapress.com/wp/semaphores/).

Preberané synchronizačné problémy delíme podľa uvedenej literatúry na:

  1. klasické synchronizačné problémy
  2. menej klasické synchronizačné problémy
  3. nie až tak klasické synchronizačné problémy
  4. ani zďaleka klasické synchronizačné problémy.

V úvodnej časti semestra sa oboznámime so základnými synchronizačnými primitívami a vzormi ako mutex, semafor, signalizácia, kritická oblasť, rendezvous, multiplex, bariéra… Zároveň s nimi začneme riešiť klasické synchronizačné úlohy ako producent/konzument, čitatelia/zapisovatelia, večerajúci filozofi, problém fajčiarov…

15.2.2022 1. prednáška
22.2.2022 2. prednáška
1.3.2022 3a. prednáška

3b. prednáška

8.3.2022 4a. prednáška

4b. prednáška

15.3.2022 5. prednáška
22.3.2022 6. prednáška
29.3.2022 konzultácia k zápočtu
5.4.2022 7. prednáška
12.4.2022 8. prednáška
19.4.2022 9. prednáška
26.4.2022
3.5.2022 10. prednáška
Skúškové obdobie Skúška RT a OT

Prednášky

1. prednáška

Úvod do paralelných a distribuovaných výpočtov

2. prednáška

Mutex, multiplex, turniket, (znovupoužiteľná) bariéra

3. prednáška

Bariéra a Fibonacci revisited

Producent-konzument, čitatelia-zapisovatelia, turniket

4. prednáška

Čitatelia / zapisovatelia ešte raz

Večerajúci filozofi

5. prednáška

Fajčiari, divosi, scoreboard

6. prednáška

Holič, H20, preplavenie cez rieku, húsenková dráha

7. týždeň – konzultácia  k zápočtu č. 1
7. prednáška – koprogramy

Iterátor, generátor a korutina v jazyku Python

8. prednáška – Async IO

Async IO v Pythone

9. prednáška – CUDA

Cuda

10. prednáška – CUDA

Cuda pokračovanie

 

Podmienky absolvovania

  1. Prvá zápočtová písomka 30. marca 2022 o 9:00 formou testu v AIS za 24 bodov. Potrebné získať minimálne 10 bodov
  2. Druhá zápočtová písomka 11. mája 2022 o 9:00 formou testu v AIS za 16 bodov. Potrebné získať minimálne 6 bodov
  3. Možnosť získať za vypracovanie úloh na každom z cvičení 3 body (10x). Hodnotí sa git repozitár na službe Github. Vypracovanie musí byť do času začiatku prednášky nasledovného týždňa. Git repozitár musí obsahovať kompletnú históriu projektu. Správy commitov musia byť v štandardnom formáte Conventional Commits a riadne podpísané menom autora. Zadaním vyžadovaná dokumentácia musí byť súčasťou štruktúry repozitára (.md súbory), nie samostatné dokumentačné súbory (.doc, .pdf, .txt, a podobne). Plagiátorstvo je ohodnotené symbolom NZ (nedostal zápočet) (časť kódu prevzatú od iného autora musíte riadne označiť, inak ide o plagiát; podobne ide o plagiát, ak viacerí študenti zdieľajú preukázateľne podobný kód).
  4. Skúška za 30 bodov formou testu v AIS. Potrebné získať minimálne 10 bodov
  5. Hodnotenie jedným písmenkom môže získať iba ten, kto na konci semestra (odporúčam po skúške!) vyplní evaluáciu.

Upozornenie

Študijný poriadok STU v článku 5 bod 2 hovorí: „Organizovanými formami vzdelávacích činností sú najmä prednáška, seminár, rôzne typy cvičení (…).“ Následne v bode 5 toho istého článku upozorňuje, že: „Neúčasť študenta na vzdelávacej činnosti môže vo výnimočných prípadoch vyučujúci ospravedlniť z dôvodu práceneschopnosti alebo z dôvodu iných prekážok na strane študenta (…), ktoré študent preukáže príslušnými dokladmi. Vyučujúci môže požadovať od študenta vypracovanie náhradnej úlohy, napr. seminárnej práce, ako náhradu za neúčasť na výučbe. V prípade neospravedlnenej neúčasti študent nemá nárok na zadanie náhradnej úlohy.“