Jistě jste se již setkali s pojmem Distributed computing (neboli česky distribuované výpočty). Jelikož se již přes čtvrt roku jednoho takového projektu účastním, rozhodl jsem se sepsat svoje zkušenosti.
Společností již častokrát proběhlo, že je možné zúčastnit se projektů, na které výkonově nestačí ani ty největší superpočítače na světě. Jedná se například o hledání prvočísel, analýzu vesmírného záření (jestli tam náhodou nejsou marťani) či zkoumání lidského DNA. Jelikož se těchto projektů účastní miliony lidí a poskytují přebytečný výkon svého PC, je možné takto náročné výpočty realizovat. Díky distribuovaným výpočtům je možné dosáhnout výkonu 256 TeraFlops (projekt World Community Grid) a limity zde téměř nejsou - záleží především na počtu účastníků. Na začátek troška teorie Systém distribuovaných výpočtů pracuje na vyřešení určitého, výpočetně extrémně náročného úkolu, který je možno paralelizovat, tj. rozdělit ho na velké množství malých, na sobě nezávislých výpočtů. Model se skládá z hlavního serveru, jenž má na práci rozdělování výpočtů, přijímání výsledků a podobně, a mešních jednotek (typicky počítačů majících samostatný procesor a operační paměť) nazvaných "uzly". Veškerá komunikace pak probíhá pomocí zpráv, jenž si uzly vyměňují s hlavním serverem.
Vysokého výkonu je dosaženo tím, že hlavní server rozdělí jednoduché výpočty jednotlivým uzlům a ty na nich mohou souběžně pracovat. Poté, co se doberou k výsledku, zašle uzel zprávu o dokončení a následně samotná data. K výpočtům se ve valné většině používá CPU počítače, ale některé projekty je možné provozovat i na nových GPU.
Celé si to lze představit na tomto jednoduchém případě: Máme za úkol zjistit, zdali je číslo 1001 prvočíslem. Toho se dosáhne tak, že se postupně vydělí všemi čísly od 2 až do 1000. Pokud ho žádné z těchto čísel nevydělí beze zbytku, tak je 1001 prvočíslem (pomíjím zde fakt, že stačí testovat dělitelnost čísly od 2 do odmocniny z 1001).
Pokud by otestování výrazu 1001 děleno libovolné číslo trvalo 10 sekund, trvalo by jednomu počítači vyřešení této úlohy 999 * 10 sekund, tj. 166,5 minut. Když se ale úloha rozdělí na 999 jednotlivých výpočtů a každý výpočet se zadá k vyřešení jednomu uzlu, tak vyřešení celé úlohy bude trvat nějakých 10 sekund + čas nutný k zaslání zpráv k uzlům + čas nutný k zaslání zpráv zpět k hlavnímu serveru + vyhodnocení dat na hlavním serveru. Dá se tak říct, že tímto způsobem se k výsledku dobereme během nějaké 0,5 minuty. A to je přeci slušné zlepšení!
Chci se zúčastnit, co k tomu potřebuji?
Zaprvé je nutné si vybrat z řady projektů, které se zabývají opravdu nejrůznějšími úlohami z oboru matematiky, fyziky, biologie, medicíny, chemie, astrofyziky a podobně. Seznam všech nejvýznamějších najdete například zde na stránkách Wikipedie.
Pak vás čeká registrace k danému projektu a stáhnutí sotfwaru - klienta -, který bude přes internet komunikovat s hlavním serverem projektů a tvořit jakéhosi správce výpočtů. Většina dnešních projektů používá softwareový klient BOINC (Berkeley Open Infrastructure for Network Computing), což je svobodný software s otevřeným kódem a vydán pod licencí LGPL.
BOINC
Jak jsem již zmiňoval, klienta BOINC si budete muset v případě většiny projektů nainstalovat na svůj PC (stáhnout si ho můžete zde). Ten pak obstarává komunikaci se servery, výměnu zpráv, spravování jednotlivých výpočtů a právě pomocí něho budete jednotlivé projekty spravovat.
Je to velmi intuitivní program a velkou výhodou je, že je k dispozici i v české lokalizaci. Obsahuje šest hlavních záložek - Projekty, Úkoly, Transfery, Zprávy, Statistiky a Diskové využití.
První dvě slouží ke spravování jednotlivých projektů - můžete se účastnit více najednou - a jednotlivých výpočtů. Mezi nimi lze libovolně přepínat, pozastavovat je či nechat si zobrazit grafický výstup právě počítaných dat.
Další dvě slouží k logování vyměněných zpráv a k zobrazení aktivních transferů. Poslední dvě záložky jsou čistě statistického rázu a zobrazují celkovou vykonanou práci, průměr za den nebo současné využití disku.
Nicméně asi nejdůležitější je nastavit si dobu, kdy má k výpočtům docházet. Samozřejmě nic vám nebrání nastavit si nepřetržité počítání, ale to má i své nevýhody, o čemž až za chvíli. Zaměřit byste se měli především na položky "povolené dny", "povolené hodiny" a "pouze pokud je počítač v klidu po X minut".
Lze tak pohodlně nastavit, aby k výpočtům docházelo pouze o víkendy nebo třeba od 23:00 do 05:00. Samozřejmě můžete mít nastaveno, že se k výpočtům může docházet kdykoliv během dne, ale jen pokud je PC v nečinnosti alespoň třeba 5 minut (aby se začalo počítat například když si dáte šlofíka či odejdete na oběd).
Pokud máte systém s více procesory, lze také nastavit, jestli se mají využívat všechny nebo třeba jen několik z nich. Podobně můžete určit, kolik procent času procesoru se má věnovat výpočtům.
A jaký z projektů si zvolit? To samozřejmě záleží na tom, ve které oblasti chcete pomoct. Za sebe mohu zmínit projekt World Community Grid, za nímž stojí IBM. V současnosti nabízí hned sedm projektů z oborů ekologie, medicíny a genetiky. A právě kvůli této rozmanitosti jsem si ho vybral. Registrace i obsluha profilu je bezproblémová, můžete si založit vlastní skupinu (co třeba skupina pro uživatele www.DDWorld.cz), navíc případné problémy se dají velmi rychle vyřešit na interním fóru.
Mezi nejznámější patří projekty: Folding@home (http://folding.stanford.edu/) climateprediction.net (http://www.climateprediction.net/index.php) SETI@homehttp://setiathome.ssl.berkeley.edu/) PrimeGrid (http://www.primegrid.com/) World Community Grid (http://www.worldcommunitygrid.org)
Na co si dát pozor Zvýšená spotřeba
: Je celkem logické, že pokud bude váš PC vytížen mnohem víc než jindy, projeví se to také na spotřebě. A zvýšená spotřeba znamená také větší účet za elektřinu. Osobně mě toto až tolik netrápí, jelikož většinu roku trávím na koleji, kde je účet za elektřinu fixní. Doma je to však o něčem jiném, a tak by měl člověk zvážit, jestli mu za to vyšší účet stojí.
Využití GPU: Některé z projektů nabízejí výpočty také přes nové grafické karty ATi a nVidia. Pokud budete tedy chtít využít i GPU, zjistěte si nejdřív informace, zdali to daný projekt podporuje. Navíc, s dnešními TDP grafik, se ještě extrémněji navýší spotřeba, o čemž o pár řádku výše.
Omezení kvality práce: Toto je trošku zvláštní a rozhodně to nemusí postihnout zrovna vás. Člověk má totiž tendenci (když je to navíc měřené na body + srovnání s osatními uživateli) propadnout soutěžení a mít spuštěné výpočty na úkor komfortu při práci. Proto chce mít jasnou hranici - když pracuji, tak žádné výpočty, nebo jen v takové míře, abych to nepocítil.
|