Checklist nejčastějších témat
Praktický checklist pro opakování. Každý blok má tři úrovně: minimum pro rychlé body, standard pro běžnou zkouškovou variantu a jistota pro méně příjemné obměny.
A0: udělat bez vyjednávání
Bcast
Evidence: common_latest ~35, starší četnosti 25x, 28 odkazů v termínových souborech.
- Minimum: umím napsat
Reduce SUM/MIN/MAXna root. - Minimum: vím, kdy je potřeba
Bcasta kdy stačí výsledek na rootu. - Standard: umím spočítat průměr a potom vybrat hodnoty podle podmínky
value > avg. - Standard: umím
max % min == 0, počet max/min, součet max/min. - Standard: umím normalizaci hodnot na rozsah
0..1nebo1..5. - Jistota: umím druhé minimum/maximum přes redukci dvojice.
- Jistota: umím vysvětlit čas
O(log p)pro stromovéReduce/Bcast.
Typické termíny: term-0-pretermin-a, term-0-pretermin, term-1-radny-b, term-1-radny-c, term-3-druhy-opravny, term-2-prvni-opravny.
PRAM tipovačka
Evidence: common_latest ~27, starší četnosti 25x, 30 odkazů v termínových souborech.
- Minimum: znám rozdíl EREW, CREW, common CRCW.
- Minimum: u každé odpovědi uvádím čas
t(n)i cenuc(n). - Standard: umím AND/OR přes stromovou redukci i common zápis.
- Standard: umím XOR/NAND, monotónnost, stejné prvky, počet nul/sudých.
- Standard: umím min/max a součet jako redukční úlohy.
- Jistota: rozliším časovou složitost a cenu při
nprocesorech. - Jistota: poznám, kdy common CRCW nejde použít kvůli různým zapisovaným hodnotám.
Typické termíny: term-0-pretermin-a, term-0-pretermin, term-1-radny-c, term-0-pretermin, term-2-prvni-opravny-b, term-1-radny-c.
kauzalita
Evidence: common_latest ~26, starší četnosti 10x plus 6x async→sync/koruna, 16 odkazů v termínových souborech.
- Minimum: umím definovat FIFO broadcast a kauzální broadcast.
- Minimum: umím napsat relaci kauzality
->. - Standard: umím poznat porušení FIFO, kauzality a atomicity z diagramu.
- Standard: umím popsat ABCAST / total order broadcast.
- Standard: umím princip synchronizovatelnosti a koruny.
- Jistota: umím stručně popsat převod asynchronního systému na synchronní, pokud je synchronizovatelný.
Typické termíny: term-0-pretermin-a, term-0-pretermin, term-2-prvni-opravny, term-0-pretermin, term-2-prvni-opravny-a, term-3-druhy-opravny.
A1: vysoká návratnost po A0
Řazení, prescan, prefix
Evidence: common_latest ~25, starší četnosti 5x Pipeline Merge Sort, 4x Prescan, 4x Enumeration Sort, 3x Odd-even, 20 odkazů v termínových souborech.
- Minimum: rozliším Pipeline Merge Sort, Enumeration Sort, Prescan a Odd-even.
- Standard: umím tabulkově simulovat stav po
Nkrocích. - Standard: u Enumeration Sort umím duplicity přes tie-break indexem.
- Standard: u Prescanu rozliším up-sweep, down-sweep, inclusive/exclusive scan.
- Jistota: umím napsat čas a práci pro typický paralelní scan/sort variantu.
Typické termíny: term-0-pretermin-a, term-0-pretermin, term-1-radny-b, term-3-druhy-opravny, term-1-radny-a, term-1-radny-c.
Euler tour + suffix sums
Evidence: common_latest ~15, starší četnosti 12x, 16 odkazů v termínových souborech.
- Minimum: umím z neorientované hrany udělat dvě orientované hrany.
- Minimum: vím, co je Etour a následník hrany.
- Standard: umím
level(v)přes+1/-1a suffix/prefix sum. - Standard: umím
preorder(v)přes první vstup do vrcholu. - Standard: umím počet potomků/následovníků jako variantu nad Etour.
- Jistota: umím převést výsledek z hran zpět na hodnoty vrcholů a uvést složitost.
Typické termíny: term-0-pretermin-a, term-0-pretermin, term-1-radny-a, term-1-radny-c, term-2-prvni-opravny-a, term-1-radny-a.
Monitory, semafory, readers-writers
Evidence: common_latest ~17, starší četnosti 6x monitor/wait/signal plus 2x producer-consumer, 12 odkazů v termínových souborech.
- Minimum: umím vysvětlit monitor,
wait,signal. - Minimum: umím základní semaforové operace
PaV. - Standard: umím readers-writers s prioritou čtenářů nebo bez uváznutí.
- Standard: umím producer-consumer pseudokód.
- Jistota: umím monitor implementovaný semafory a popsat, kde vzniká deadlock/starvation.
Typické termíny: term-0-pretermin-a, term-1-radny-b, term-1-radny-b, term-1-radny-b, term-2-prvni-opravny, term-1-radny-a.
Architektury
Evidence: common_latest ~26, starší četnosti VLIW 4x, zřetězení/MISD 4x, Xeon Phi 3x, DataFlow 2x, PRAM architektura 2x, 10 odkazů v termínových souborech.
- Minimum: umím VLIW a konflikty v instrukčním slově.
- Minimum: umím zřetězené procesory/pipeline a základní výhody.
- Standard: umím SIMD/MIMD, UMA/NUMA, Xeon Phi.
- Standard: umím Dataflow architekturu.
- Standard: umím PRAM model a propojovací síť.
- Jistota: ke každé architektuře mám 3 věty + jednoduchý nákres.
Typické termíny: term-1-radny-a, term-1-radny-b, term-1-radny-b, term-2-prvni-opravny-a, term-3-druhy-opravny, term-1-radny-a.
B: přidat pro jistotu
Distribuované algoritmy
- Marzullo: intervaly, průniky, nejlepší počet překryvů.
- Maekawa: kvóra, průnik každých dvou kvór.
- Suzuki: token, žádosti, fronta.
- Ricart-Agrawala: timestampy a odpovědi.
- Dijkstra/Hirschberg-Sinclair/volba lídra: základní princip a složitost.
Typické termíny: term-0-pretermin-a, term-1-radny-c, term-1-radny-b, term-3-druhy-opravny, term-2-prvni-opravny, term-1-radny-b.
Pi-kalkul
- Umím najít synchronizující vstup/výstup.
- Umím provést substituci.
- Umím zapsat 3-4 různé možné redukce.
- Umím říct, kdy už výraz nejde redukovat.
- Umím vypsat pozorování typu
downarrow x.
Typické termíny: term-1-radny-a, term-1-radny-b, term-1-radny-c, term-0-pretermin, term-1-radny-zkratka, term-1-radny-b.
Carry-look-ahead
- Znám význam
generate,propagate,stop. - Umím převést dvojici binárních čísel na stavy bitů.
- Umím provést scan pro carry.
- Umím dopočítat výsledný součet.
Typické termíny: term-1-radny-a-zkratka, term-1-radny-b, term-1-radny-zkratka, term-1-radny-b, term-1-radny-a.
OCCAM
- Znám
CHAN,PAR,SEQ,ALT. - Umím číst z kanálu a zapisovat do kanálu.
- Umím pole kanálů a routování na výstup podle hodnoty.
- Umím buffer/queue s podmíněným příjmem/výdejem.
- Umím nekonečný proces se stavem.
Typické termíny: term-0-pretermin-a, term-0-pretermin, term-2-prvni-opravny-a, term-2-prvni-opravny-b, term-1-radny-a.
C: když zbyde čas
Test-and-set, swap, Peterson
- Umím aktivní čekání přes test-and-set.
- Umím bounded waiting variantu.
- Umím Petersonův algoritmus pro dva procesy.
- Umím popsat starvation a deadlock.
SELECT
- Umím rozdělit prvky podle pivotu na
L/E/G. - Umím rozhodnout, ve které části leží k-tý prvek.
- Umím napsat základní rekurzivní krok.
ADA
- Znám základní Linda operace nad tuple space.
- Umím linked-list search/delete/reverse styl úlohy.
- Znám základní ADA komunikaci podle zadání.
Závěrečný drill
- Otevřít archiv termínů.
- Projít poslední tři roky: 00-index, 00-index, 00-index.
- U každé otázky napsat do 10 sekund téma a šablonu řešení.
- Označit si slabiny v tomhle checklistu.
- Před zkouškou znovu projet jen nezaškrtnuté body z A0 a A1.