PRAM tipovačka
Zkouškový pattern
Úloha obvykle chce odhadnout čas, cenu a počet procesorů pro několik jednoduchých výpočtů nad polem. Často se ptá na rozdíl mezi EREW, CREW, CRCW a common CRCW.
Oficiální slidy
- PRAM, str. 3 až str. 5 - definice PRAM, synchronní kroky, EREW/CREW/CRCW a řešení CRCW konfliktů.
- PRAM, str. 6 - příklady časů/cen pro základní PRAM úlohy.
- PRAM, str. 9 až str. 12 - reduce, scan/prescan a jejich složitost.
- PRAM, str. 26 až str. 27 - přesnější definice access modelů a hierarchie PRIORITY/ARBITRARY/COMMON/CREW/EREW.
Modely
- EREW: exclusive read, exclusive write.
- CREW: concurrent read, exclusive write.
- CRCW: concurrent read, concurrent write.
- Common CRCW: souběžný zápis povolen jen při zápisu stejné hodnoty.
Minimální odpověď
U každé podúlohy napiš:
- použitý model;
- čas
t(n); - počet procesorů
p(n); - cenu
c(n) = p(n) * t(n); - jednu větu, proč je čtení/zápis v daném modelu povolené.
Rychlá mapa typických úloh
| Úloha | Intuice |
|---|---|
| OR/AND existence vlastnosti | CRCW často O(1) common zápisem stejné hodnoty, EREW/CREW obvykle redukce O(log n) |
| XOR/parita | nelze jen common write, typicky stromová redukce |
| max/min | paralelní redukce nebo turnaj |
| počet prvků | transformace na 0/1 a suma |
| monotónnost | paralelně zkontrolovat sousedy, pak AND přes výsledky |
| všechna čísla stejná | porovnat s jedním prvkem nebo sousedy, podle modelu čtení |
Šablona řešení
- Převést zadání na elementární predikáty nad prvky nebo dvojicemi.
- Spočítat lokální predikát paralelně.
- Agregovat přes OR/AND/sumu/max.
- Vyjádřit čas, počet procesorů a cenu.
Typické mini-odpovědi
- Existuje prvek s vlastností P? Inicializuj odpověď na
false; každý proces s nalezenou vlastností zapíšetrue. V common CRCW všichni zapisují stejnou hodnotu, takžeO(1)přinprocesorech. - AND přes všechny prvky. Buď common CRCW zápisem
falsepři porušení vlastnosti, nebo stromová redukce vO(log n). - XOR/parita. Nejde vyřešit pouhým common zápisem, protože výsledky nejsou monotónní; použij stromovou redukci.
- Maximum/minimum. Bez speciálního conflict resolution bezpečně stromová redukce
O(log n)sO(n)procesory. - Monotónnost. Paralelně porovnej sousední dvojice a potom agreguj AND.
Mini-drill
- Jaký je rozdíl mezi CRCW a common CRCW?
- Proč OR existence jde v common CRCW v
O(1), ale XOR ne? - Jak spočítáš cenu stromové redukce s
nprocesory a časemO(log n)? - Kde u monotónnosti vzniká problém v EREW?
Vyřešené příklady z termínů
OR prvků 1/0
Zdroj: term-0-pretermin-a
Zadání: určit cenu optimálního algoritmu pro OR nad n prvky při N = n procesorech.
Řešení:
- EREW: stromová redukce, čas
O(log n), procesoryO(n), cenaO(n log n). - CREW: souběžné čtení nepomůže zásadně u redukce do jedné hodnoty, typicky
O(log n)čas a cenaO(n log n). - Common CRCW: každý proces s hodnotou
1zapíše do sdílené odpovědi1; zapisovaná hodnota je stejná, časO(1), procesoryO(n), cenaO(n).
NOT všech prvků
Zdroj: term-0-pretermin-a
Zadání: spočítat negaci všech prvků 1/0 v posloupnosti.
Řešení:
- Každý proces zpracuje jeden prvek:
B[i] = !A[i]. - V EREW, CREW i CRCW nevzniká konflikt, protože proces
ičteA[i]a zapisujeB[i]. - Čas
O(1), procesoryO(n), cenaO(n).
XOR / parita
Zdroj: term-1-radny-b
Zadání: určit časovou složitost XOR pro EREW, CREW a common CRCW.
Řešení:
- XOR není monotónní existence vlastnosti, takže common zápis stejné hodnoty nestačí.
- Bez silnějšího conflict resolution použij stromovou redukci XOR.
- Typická odpověď pro všechny tři modely: čas
O(log n); přiO(n)procesorech cenaO(n log n).
Kde se to objevuje
Podle sjednocených termínových souborů v archivu:
- term-0-pretermin-a
- term-0-pretermin
- term-2-prvni-opravny
- term-0-pretermin-b
- term-3-druhy-opravny
- term-2-prvni-opravny
- term-1-radny-c
- term-1-radny-b
- term-1-radny-a
- term-0-pretermin
- term-3-druhy-opravny
- term-2-prvni-opravny
- term-1-radny-c
- term-1-radny-b
- term-1-radny-a-zkratka
- term-0-pretermin
- term-3-druhy-opravny
- term-2-prvni-opravny-b
- term-2-prvni-opravny-a
- term-1-radny-c
- term-1-radny-b
- term-1-radny-a
- term-3-druhy-opravny
- term-2-prvni-opravny
- term-1-radny-zkratka
- term-2-prvni-opravny
- term-1-radny-b
- term-1-radny-a
- term-1-radny-c
- term-1-radny-b
- term-1-radny-a
Na co si dát pozor
- Common CRCW neznamená libovolný conflict resolution. Zapisující procesy musí zapisovat stejnou hodnotu.
- U ceny je potřeba počítat procesory, nejen čas.
- U EREW nesmí více procesorů ve stejném kroku číst stejnou buňku.
- U CREW je souběžné čtení povolené, zápis ne.