<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>Series</journal-title>
      </journal-title-group>
      <issn pub-type="ppub">1613-0073</issn>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Menej je niekedy viac: Mapreduce a Flume v paralelných výpocˇtoch (pozvaná prednáška)</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Richard Královicˇ</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Google Zürich</institution>
          ,
          <addr-line>Brandschenkestrasse 110, 8002 Zürich</addr-line>
          <country country="CH">Switzerland</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2013</year>
      </pub-date>
      <volume>1003</volume>
      <abstract>
        <p>V porovnaní so sekvencˇnými výpocˇtami sú výpocˇty využívajúce paralelizmus výrazne zložitejšie. Z teoretického pohl'adu je vel'mi prirodzeným modelom paralelných výpocˇtov model PRAM, ktorý je analógiou modelu RAM cˇasto používaného v teórii zložitosti. Z praktického pohl'adu je však zarucˇenie úplnej synchronizácie a uniformného prístupu k zdiel'anej pamäti, garantovaných modelom PRAM, znacˇne problematické. Pre realizáciu paralelných výpocˇtov sa preto cˇasto využívajú distribuované systémy s rôznou mierou asynchónnosti. Klasické systémy používané pre implementáciu paralelných výpocˇ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ýpocˇtu, odolnost' vocˇi chybám, a pod., cˇo implementáciu paralelných algoritmov 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 komunikacˇnú štruktúru paralelného výpocˇtu. Sem patrí napr. systém MapReduce, urcˇený na spracovávanie vel'kého množstva dát. Používatel' tu stráca flexibilitu, cˇ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ýpocˇtu; odolnost' vocˇi chybám je k dispozícii bez jeho zásahu. Z pohl'adu užívatel'a pozostáva výpocˇet v MapReduce pozostáva dvoch fáz: Vo fáze Map môže užívatel'om urcˇená funkcia vytvorit', pre každú vstupnú položku, niekol'ko párov (kl'úcˇ, hodnota). Vo fáze Reduce je, pre každú použitú hodnotu kl'úcˇa, zavolaná užívatel'om definovaná funkcia, ktorá spracuje všetky hodnoty prislúchajúce k danému kl'úcˇu. Systém MapReduce je, aj napriek jeho jednoduchosti, použitel'ný pre prekvapivo vel'ké množstvo problémov. V mnohých situáciách je však na riešenie problému potrebných niekol'ko cyklov MapReduce a ich rucˇné plánovanie a menežovanie býva zväcˇša zd´lhavé. Na ul'ahcˇ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'úcˇ, hodnota) podl'a kl'úcˇ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.</p>
      </abstract>
    </article-meta>
  </front>
  <body />
  <back>
    <ref-list />
  </back>
</article>