Paralelní a distribuované systémy

2026/2027, ZS

Kurz se zabývá základními aspekty paralelních a distribuovaných systémů. Od základů paralelismu, klasických problémů a přístupů k synchronizaci sdílenou pamětí, přes úvod do distribuovaných systému a výběr algoritmů pro řešení jejich základních problémů, až po přehled některých zajímavých moderních distribuovaných systémů.

Zdroje

Seznam zdrojů bude během semestru rozšiřován, zejména o reference ke konkrétním zmínkám z přednášek/cvičení. Podívejte se i k jednotlivým přednáškám a do zdrojů uvedených ve slidech.

Zápočet

Na zápočet musíte splnit dvě podmínky:

  1. získat minimálně 30 bodů z průběžných úkolů
    • bodované úkoly vždy budou zvěřejněny zde a na cvičení i s termínem
    • úkoly musíte předvést osobně (budu se doptávat) a odeslat na mail
    • celkově budou zadány úkoly za minimálně 60 bodů
  2. ve dvojicií či trojici seznámit kolegy na cvičení ve 30-40 minutách s nějakým zajímavým tématem, technologíí či výsledkem z oblasti paralelních a distribuovaných systémů
    • skupinky si domluvte během prvního týdne, na druhéím cvičení je rozdělíme
    • téma si volíte sami, ale musím jej schválit
    • témata si nachystejte po vytvoření skupinek
    • v případě kolize témat, téma dostane ten, kdo si řekl dříve (mailem či osobně)
    • termíny pro skupinky vylosujeme po jejich určení (7-9 posledních cvičení)
    • součástí povídání či ukázky musí být i krátky text pro kolegy k rozdání (cca 1x A4, tisk zařídím při odevzdání předem)

Zkouška

Zkouška se skládá ze dvou částí:

  1. Písemná část
    • hromadně,
    • náhodné otázky,
    • 45 minut.
  2. Ústní část
    • po jednom,
    • projdeme spolu písemnou část
    • a náhodný průřez kurzem,
    • cca 15-20 minut

Přednášky

  1. Úvod
  2. Paralelní systémy, kritická sekce
  3. Synchronizační primitiva
    • slidy
    • Ben-Ari, kapitoly 6 a 7 (více informací k semaforům a monitorům)
    • Herlihy, Shavit, kapitola 17 (bariéry)
    • Dokumentace vašeho oblíbeného jazyka (atomické akce, mutex, lock, semafor, monitor, podmíněná proměnná, bariéra, ThreadPool, …)
    • Další ve slidech
  4. Klasické synchronizační problémy, Návrh paralelního systému

Cvičení