=Paper= {{Paper |id=None |storemode=property |title=Menej je niekedy viac: Mapreduce a Flume v paralelných výpočtoch |pdfUrl=https://ceur-ws.org/Vol-1003/88.pdf |volume=Vol-1003 |dblpUrl=https://dblp.org/rec/conf/itat/Kralovic13 }} ==Menej je niekedy viac: Mapreduce a Flume v paralelných výpočtoch== https://ceur-ws.org/Vol-1003/88.pdf
ITAT 2013 Proceedings, CEUR Workshop Proceedings Vol. 1003, p. 88
http://ceur-ws.org/Vol-1003, Series ISSN 1613-0073, c 2013 R. Královič


         Menej je niekedy viac: Mapreduce a Flume v paralelných výpočtoch
                                (pozvaná prednáška)

                                                            Richard Královič

                                   Google Zürich, Brandschenkestrasse 110, 8002 Zürich Switzerland

V porovnaní so sekvenčnými výpočtami sú výpočty využívajúce paralelizmus výrazne zložitejšie. Z teoretického pohl’adu
je vel’mi prirodzeným modelom paralelných výpočtov model PRAM, ktorý je analógiou modelu RAM často používaného
v teórii zložitosti. Z praktického pohl’adu je však zaručenie úplnej synchronizácie a uniformného prístupu k zdiel’anej
pamäti, garantovaných modelom PRAM, značne problematické. Pre realizáciu paralelných výpočtov sa preto často vy-
užívajú distribuované systémy s rôznou mierou asynchónnosti.
   Klasické systémy používané pre implementáciu paralelných výpočtov v distribuovaných systémoch, ako napr. MPI,
poskytujú vel’kú flexibilitu. To však so sebou prináša aj nevýhody. Používatel’ sa totiž musí postarat’ o mnohé technické
detaily, ako napr. správnu synchronizáciu výpočtu, odolnost’ voči chybám, a pod., čo implementáciu paralelných algorit-
mov výrazne komplikuje.
   Alternatívou k takýmto všeobecným systémom pre využitie paralelizmu sú systémy, ktoré kladú isté obmedzenia na ko-
munikačnú štruktúru paralelného výpočtu. Sem patrí napr. systém MapReduce, určený na spracovávanie vel’kého množ-
stva dát. Používatel’ tu stráca flexibilitu, čo znamená, že použitie takýchto systémov nie je vždy vhodné. Na druhej strane,
používatel’ sa môže sústredit’ na samotné jadro logiky paralelného výpočtu; odolnost’ voči chybám je k dispozícii bez
jeho zásahu.
   Z pohl’adu užívatel’a pozostáva výpočet v MapReduce pozostáva dvoch fáz: Vo fáze Map môže užívatel’om určená
funkcia vytvorit’, pre každú vstupnú položku, niekol’ko párov (kl’úč, hodnota). Vo fáze Reduce je, pre každú použitú
hodnotu kl’úča, zavolaná užívatel’om definovaná funkcia, ktorá spracuje všetky hodnoty prislúchajúce k danému kl’úču.
   Systém MapReduce je, aj napriek jeho jednoduchosti, použitel’ný pre prekvapivo vel’ké množstvo problémov. V mno-
hých situáciách je však na riešenie problému potrebných niekol’ko cyklov MapReduce a ich ručné plánovanie a menežova-
nie býva zväčša zdĺhavé. Na ul’ahčenie tejto situácie bol navrhnutý system Flume, ktorý poskytuje užívatel’ovi komfortnú
abstrakciu nad MapReduce. Flume poskytuje dátový typ pre paralelizovaný súbor dát, s ktorým potom môže užívatel’
pracovat’ ako s jednoduchou premennou. Na súbore dát je možné spustit’ paralelnú operáciu, ktorá aplikuje danú funkciu
na každú položku jednotlivo. Okrem toho je možné preusporiadat’ súbor obsahujúci páry (kl’úč, hodnota) podl’a kl’úča,
podobne ako v systéme MapReduce. Knižnica Flume na základe vykonaných operácii navrhne, zoptimalizuje, a vykoná
sériu MapReduce cyklov, ktoré realizujú užívatel’om požadované operácie.

Richard Královič absolvoval štúdium informatiky na FMFI UK v Bratislave. Doktorát získal na FMFI UK, kde sa veno-
val najmä oblasti distribuovaných výpočtov a na ETH Zürich, kde sa v pracovnej skupine Juraja Hromkoviča zaoberal
stavovou zložitost’ou konečných automatov, aproximatívnymi algoritmami, online algoritmami a advice zložitost’ou. Po
skončení postdocu na ETH Zürich pracuje pre Google Zürich.