Internetové superpočítače

1. 1. 2005

Sdílet

Každý počítač, který stojí doma nebo v kanceláři a je alespoň příležitostněpřipojený na internet, se může stát lehce superpočítačem. Tedy přesněji řečeno jeho částí. Mů...

Každý počítač, který stojí doma nebo v kanceláři a je alespoň příležitostně
připojený na internet, se může stát lehce superpočítačem. Tedy přesněji řečeno

jeho částí. Může být prvkem systému distribuovaného počítání. Co to je? Jak to

funguje a jak je možné toho využít? Mohu nějak přispět k vyřešení nějaké úlohy

prospěšné celému lidstvu? Pokud vás zajímají otázky související s

distribuovanými výpočetními systémy a pokud byste rádi viděli takový systém i u

vás doma v pokoji, pak čtěte dál.



Distribuované počítání je poměrně starou technologií, přesněji řečeno

technologickou koncepcí, jak řešit složité problémy, především matematického

charakteru. Pokud máme například rovnici, jejíž řešení je velmi náročné, nebo

sled postupů, jež je třeba extrémně mnohokrát opakovat, pak čelíme klasickému

problému svěřovanému superpočítačům.



Byl jednou jeden superpočítač

Superpočítač v původním slova smyslu je strojem s enormním výpočetním výkonem a

ohromnou pamětí, který je již od počátku konstruován pro řešení tohoto typu

problémů. Tato konstrukce sice způsobuje, že takový stroj ztrácí většinu

vlastností typických pro obyčejné, kancelářské či domácí počítače nebo dokonce

servery, nicméně to je oběť, kterou je potřeba přinést zpracovávání velice

složitých úloh. Typicky si takový počítač představujeme jako stroj zvící

jednoho fotbalového hřiště. Superpočítače v novějším pojetí již nejsou

monolitním systémem, jako tomu bylo dříve, i když rozměr basketbalového hřiště

ani zdaleka neztratily. Místo toho jsou tvořeny velkým množstvím desek, z nichž

každá je technicky vzato počítačem sama o sobě. Obsahuje totiž základní

sběrnici, procesor, část paměti a komunikační prvky, které ji propojují s

ostatními částmi celého zařízení. Výsledkem je, že výpočetní kapacita takové

desky je propojena s výpočetní kapacitou všech ostatních a vzniká zařízení,

které se opět navenek chová, jako by šlo o jediný počítač, nicméně v něm

dochází ke slučování výkonu všech komponent, které jej tvoří.

Superpočítač je, jak již doufejme vyplynulo z jeho popisu, nesmírně složitou a

proto i nesmírně drahou záležitostí. Takové stroje se až na výjimky nestaví

sériově. Každý je vlastně originálem, který je konstruován některou ze

specializovaných firem na zakázku pro každého jednotlivého zákazníka zvlášť.

Zákazníky, kteří si mohou podobné stroje dovolit, jsou především vlády, armády,

některé vysoké školy a instituce, které potřebují vysoký výkon k provozování

své činnosti, například řízení leteckého provozu nebo meteorologická služba.

Jinak řečeno, superpočítač je vynikající věc, ale ani omylem není pro každého.

Kromě toho jsou tyto stroje také mimořádně náročné na provoz, investice do

jejich stavby a oživení nejsou všechno. Superpočítače potřebují obrovské

množství elektrické energie. Kromě toho musí být chlazeny, protože provozem

velkého počtu výpočetních jednotek s vyšší výkonností než běžné PC vzniká velké

množství zbytkového, odpadního tepla. Až donedávna musely být (a některé musejí

být dodnes) umisťovány do speciálního prostředí, kde se dbalo a dbá na velmi

nízkou míru prašnosti, na čistotu ovzduší a na striktně udržovanou teplotu.

Potřebují také specializovanou obsluhu náročnost a tedy i cena jejich údržby je

ve srovnání s klasickým stolním PC nesrovnatelná. To ovšem ještě ani zdaleka

nejsme u otázky cenové náročnosti softwaru pro takové přístroje. Základní

operačním systémem jsou různé specializované verze UNIXu, na nichž běží

zvláštní aplikace určené pro úlohy, kvůli nimž byl daný počítač sestaven.

Jejich administrace se sice podobá řízení běžných unixových systémů, nicméně je

ve skutečnosti mnohem náročnější, jak z hlediska nároků na erudici obsluhy, tak

i z hlediska samotného řídícího a programovacího prostředí.



Rozdělená úloha

Již poměrně dávno přišel kdosi s myšlenkou, jak vyřešit úlohy určené pro

superpočítače i bez jejich asistence. Byla to vlastně z nouze ctnost, ale

znamenala počátek nápadu, který pak našel své naplnění až s masivním nasazením

internetu. Tímto nápadem bylo suplovat funkci superpočítače v „moderním“

pojetí, tedy složeného z velkého množství relativně menších jader v síti

vytvořené z obyčejných počítačů. Klíčovou podmínkou je, aby obrovskou úlohu,

která stojí na začátku celého procesu, bylo možné rozdělit na velké množství

relativně jednodušších úloh. Jednodušších v tom smyslu, že jejich výpočty je

možné provést pomocí zařízení o běžně dostupné výpočetní síle v rozumném čase

několika hodin, maximálně několika desítek hodin čistého početního výkonu, při

zatížení daného stroje blížícímu se maximu jeho možností. Ne všechny úlohy

určené pro superpočítače (jež se ve výsledku mohou chovat jako jediná logická

jednotka) lze takto upravit, nicméně ty typické, postavené na velkém počtu

opakování relativně konstantní úlohy, takto možné přepracovat je. Dalším krokem

je vytvoření systému, jenž umí „porcovat“ výchozí úlohu na ony menší části a

prostřednictvím nějakého komunikačního média, obvykle počítačové sítě (ale není

to podmínkou), ji distribuovat obyčejným počítačům. Ty pak úlohu

prostřednictvím speciálně naprogramované aplikace, tzv. klienta distribuovaného

počítání, v nastavené době, tedy tehdy, nejsou-li právě používány pro něco

jiného, řeší. Jakmile je počítačem uzlem sítě distribuovaného počítání

jednotlivá úloha dokončena, je její výsledek pomocí stejného média, jakým byla

získána vstupní data, opět předán distribučnímu systému, který se postará o

jeho správné zařazení do kontextu ostatních výsledků. Jakmile je tato operace

provedena, zajistí odeslání dalšího zatím nezpracovaného balíku dat uvolněnému

uzlu.

Protože v takovém prostředí záleží vlastně jen na výkonu distribučního systému

a mimo něj mohou na jednotlivých úlohách zcela nezávisle na sobě pracovat

stovky, tisíce a miliony samostatných a různě výkonných jednotek, je tak

vlastně možné dosáhnout nejen početní síly blížící se superpočítačům, ale

výkonnost mnohých z nich dokonce i několikanásobně překročit. Jak ale přinutit

majitele, správce klasických počítačů, obyčejných PC, aby se tohoto účastnili?

Snadno. Žádné obyčejné PC není využíváno po celou dobu, kdy je zapnuto. V

naprosté většině případů má systém definovaný spořič obrazovky, který je

aktivován po určité době neaktivity, tedy pokud je zřejmé, že u stolního

počítače už několik minut nesedí uživatel, nebo na tomto počítači nic nedělá. V

takovém případě se spouští rybičky v akváriu, elegantní geometrické tvary nebo

sled kreslených vtipů a výpočetní výkon stroje je bez užitku. Právě v tomto

okamžiku ale může být aktivován systém distribuovaného počítání.

Již před lety byly provedeny pokusy spočívající ve vytvoření jakéhosi

amatérského superpočítače tak, že bylo například v univerzitní tělocvičně

sesíťováno několik stovek klasických PC a pomocí speciálního softwaru bylo

dosaženo koordinace jejich činnosti. Systém, který vznikl, se sice

superpočítačům podobal, ale pravá síť distribuovaného počítání to nebyla,

protože o všechny tyto stroje se bylo nutné starat.

V souvislosti s rozvojem internetu a jeho proniknutím i do běžných domácností a

na méně náročná a zatížená pracoviště se pro systémy distribuovaného počítání

otevřelo nové pole působnosti, na němž mohou teprve předvést vše, co doopravdy

umí. Projekt Seti@Home se dnes stal již legendou. Kromě něj ale existuje

množství dalších, podobných systémů, které se zabývají jinými, rovněž velmi

složitými úkoly z oblasti biologie, fyziky, medicíny, ale také například

kryptografie. Díky systémům distribuovaného počítání se staly služby

superpočítačů dostupnějšími než dříve a mohou být tudíž nasazeny i pro takové

úlohy, které by, ač jsou zajímavé, nikdo nikdy na klasickém superpočítači

nepustil prostě proto, že jsou pro něj spekulativní a poněkud zbytečnou

záležitostí jejich okamžitý potenciální přínos nemusí být nutně roven

vynaloženým nákladům.



Superpočítač versus distribuované počítání

Co je to superpočítač?

- jedno speciální zařízení pro extrémně náročné výpočty,

- může být složen z množství menších „jader“, tedy z malých počítačů,

- používá speciální verze obvykle UNIXových systémů,

- jeho součástí je speciální software,

- jedná se o náročnou a velmi drahou záležitost.

Co je to distribuované počítání?

- vyřešení úlohy pro superpočítač tím, že jeúloha rozdělena na větší množství

malých úkolů,

- tyto „malé úkoly“ mohou řešit i standardně výkonné stanice propojené sítí,

- na těchto stanicích je instalován speciální software,

- jednotlivé úlohy jsou přidělovány jednotlivým stanicím distribučním centrem,

- výsledky jsou pak předávány zpět do distribučního centra,

- jednotlivé stanice či prvky sítě distribuovaného počítání, která tak vzniká,

mají různý výkon a kapacitu, jsou schopny zpracovávat výsledky svých částí

výpočtu s různou frekvencí,

- protože tak ale činí současně, může síť o několika tisících uzlů vygenerovat

během krátké doby několik tisíc hodin čistého výpočetního času, který by se na

jednom stroji vytvářel velmi dlouho,

- výsledkem je tak vyřešení srovnatelně těžké úlohy jako pro superpočítač, a

navíc v krátkém čase.



Zajímavé systémy distribuovaného počítání



Seti@Home

http://setiathome.berkeley.edu

Seti@Home je nejstarším nepřetržitě běžícím globálním projektem distribuovaného

počítání. Smyslem tohoto projektu je pomocí analýzy rádiových signálů

získávaných prostřednictvím radioteleskopu v Arecibu v Novém Mexiku hledat

možné stopy mimozemské inteligence, přesněji její snahy komunikovat s naší

civilizací. Seti@Home bylo založeno univerzitou v Berkeley, nicméně na jeho

provozu se podílí řada velkých společností, které tímto způsobem testují svůj

hardware i software v podmínkách největšího systému distribuovaného počítání na

světě. Je v provozu již čtyři roky a zřejmě ještě v provozu nějakou dobu bude,

nicméně žádné signály, které by k nám vysílal E.T., se prozatím nepodařilo

objevit, byť existují vážní kandidáti z některých částí hvězdné oblohy.



Evolution@Home

http://www.evolutionary-research.org

Tento projekt se podobá předchozímu pouze svým názvem, jeho smyslem je totiž

něco zcela odlišného. Účelem je zjistit, jak funguje matka příroda, konkrétně

evoluce. Pomocí speciálních simulátorů jsou zde s využitím počítačů

dobrovolníků simulovány procesy, ke kterým docházelo v přírodě po miliony let.

Díky tomu je možné lépe pochopit v mnoha ohledech vývoj života na Zemi a v

důsledku toho i potenciálně na jiných místech této a jiných slunečních soustav.

Protože evoluce je nesmírně složitým procesem, je stejně složité i její

matematické modelování, které se opět děje pomocí speciálního klienta určeného

pro několik různých systémových platforem.

Nedostatkem tohoto systému je menší míra automatizace než v případě Seti@Home,

mnoho věcí je zde nutné dělat ručně, především se pak jedná o dodávání dalších

pracovních jednotek. Také samotná aplikace není tak hezká a jak se můžete

přesvědčit z obrázku, běží v konzolovém režimu. Přesto dělá velmi zajímavou

práci její výsledky na internetu vás mohou přesvědčit.



Climate Prediction

http://www.climateprediction.net

Také projekt Climate Prediction patří stejně jako předchozí do rodiny systémů

enviromentálního počítání. Účelem v tomto případě není pochopit fungování

evoluce, ale pokusit se předpovědět vývoj klimatu na příštích padesát let. Data

jsou sbírána na základě současných globálních map světového klimatu a

analyzována s ohledem na různé možné tendence a směry vývoje. Výsledkem tohoto

procesu má být dosažení přehledné a dynamické mapy vývoje planetárního klimatu

v perspektivě následujících padesáti let. Klient funguje jako spořič obrazovky,

nabízí možnost výběru projektu (a nejen to), je poměrně obsáhle

konfigurovatelný, má integrovanou službu zasílání zpráv uživatelům a několik

dalších užitečných funkcí. Bohužel, čas od času ve Windows XP/SP2 padá nebo má

tendenci fungovat nekorektně, což je škoda.



Stavba urychlovače částic

http://stephenbrooks.org/muon1



Z enviromentálních věd se přesuňme na chvíli do oblasti techniky. Nejmodernější

fyzika vyžaduje nejnovější vybavení. Jeho konstrukce již dávno není jen otázkou

inženýrů, ale i superpočítačů. V rámci projektu MUON1 se můžete účastnit vývoje

urychlovače částic, který je konstruován opět pomocí dobrovolnických počítačů

po celém světě. Jedná se o docela zajímavý a ve světle hledačů mimozemšťanů

nebo evoluce mnohem praktičtější projekt, který však také vyniká poměrně

velkými ambicemi konstrukce funkčního urychlovače. Bohužel, s klientem tohoto

systému jsme měli trochu problémy. Pokud byste si jej chtěli vyzkoušet,

doporučujeme určitou opatrnost, nicméně na Windows typu NT jej lze docela dobře

zvládnout.



Hledání léků

http://www.find-a-drug.org

Hledání léků je projekt, který se pomocí služeb distribuovaného počítání snaží

přispět k nalezení léků na běžné, avšak smrtelné a zničující choroby, jako je

například malárie a další. Je provozován nezávislou neziskovou skupinou.

Zajímavostí je, že Find-a-Drug se mimo jiné snaží najít i kvalitnější

protilátky proti jedům a toxinům, které by mohly být potenciálně využity

teroristy pro bioteroristické útoky. Projekt je rozdělen do několika dílčích

částí, v rámci kterých se pracuje na jednotlivých úkolech. Smyslem je analýza

velmi složitých molekul a jejich možných kombinací. Klient tohoto systému má

standardní instalátor pro systém Windows. Jeho konfigurace je spojena s

jednoduchou registrací. Ovládání klienta je realizováno přes ikonku v systémové

oblasti Windows a přes okno, na němž je také zobrazována grafika, funkce

systému je jinak řízena zcela automaticky. Nedostatkem byla v tomto případě

kromě místy pochybné stability také skutečnost, že systém dokázal velmi rychle

spotřebovat veškerý výpočetní výkon i poměrně silného počítače za jeho plného

chodu, a tak bylo nutné jej ručně pomocí správce úloh „usměrnit“. Nakonec se to

ovšem podařilo, a tak mohlo distribuované počítání hledání léků probíhat

relativně bez problémů.



Výběr je větší

Představili jsme pět projektů distribuovaného počítání, nicméně jich existuje

mnohem více. Za pozornost stojí mimo jiné ještě například jeden, který se

pokouší odhadovat sekvence lidského genomu z již známých částí a výrazně tak

napomoci poznání genetické stavby člověka a vlastně i dalších živých organismů

(http://www.grid.org/ projects/ hpf).Pomoci hledání léků se snaží i jeden z

projektů Standfordské univerzity (http://cmgm. stanford.

edu/~cparnot/xgrid-stanford/ index.html). Jiným zajímavým pokusem je snaha

počítat proteinové sekvence pomocí projektu Predictor@ Home

(http://predictor.scripps. edu). Zajímavostí tohoto projektu je, že rozměrově

se jedná o jednoznačně největšího klienta pro distribuované počítání, s nímž se

můžete dnes na veřejném internetu setkat (jeho provoz zabere něco přes sto

megabajtů na pevném disku). Zajímavé je i to, že tento systém používá

standardizovanou platformu (tj. klient server) pro distribuované počítání, s

níž se je možné setkat i u dalších podobných projektů.



Možnosti distribuovaného počítání na internetu



V současné době existují díky internetu desítky sítí distribuovaného počítání.

Některé z nich jsou určeny pro širokou veřejnost, jiné pracují pouze v daném

prostředí, například ve školách, nemocnicích nebo společnostech, které tak

efektivně využívají volného času a prostředků svých počítačů k pozitivním

účelům. Některé z veřejně dostupných sítí jsou dobrovolnou záležitostí a každý

uživatel, který se těchto projektů účastní, tak činí vědomě bez nároku na

odměnu. Existovaly ale i takové, které slibovaly za investované hodiny

procesorového času zaplatit určitou finanční částku. Sítě jsou realizovány jako

spořiče obrazovky (i v tomto ohledu bylo průkopníkem Seti@Home), nicméně mohou

fungovat i nepřetržitě jako jeden z procesů hostitelského počítače. V minulosti

se objevila přinejmenším jedna síť (Altnet), která fungovala na spywarovém

základu. Jejím klientem se stal každý, kdo si nainstaloval výměnný program

KaZaA Media Desktop (plnou, nikoliv pirátskou „Lite“ verzi) a byla určena k

prodeji výpočetního času svých členů třetím stranám. Přestože oficiálně tato

síť nebyla použita a její klienti dnes slouží k něčemu jinému (šíří

prostřednictvím KaZaA chráněný obsah, soubory vybavené zlatou ikonkou), ukázala

i ona možnosti distribuovaného počítání v kombinaci s jinými technologiemi, v

tomto konkrétním případě s malwarem, tedy s nežádoucím softwarem bundlovaným

sponzorskou formou s jinými aplikacemi.



Co tedy potřebuji, pokud chci pracovat v distribuční síti?

Pokud máte dojem, že váš počítač většinu svého času zahálí a pouze živí více či

méně nudný spořič obrazovky, pak není důvod, proč byste se nemohli stát

aktivním prvkem některé ze sítí distribuovaného počítání. Co k tomu

potřebujete? Nic zvláštního, vlastně jen základní věci:

- dostatek výpočetního výkonu, procesor Intel PII a vyšší, Celerony, včetně

kompatibilních,

- operační systém Windows konfigurovaný tak, že v době, kdy běží spořič

obrazovky, nefunguje na pozadí jiná služba, která by podstatným způsobem

konzumovala výkon (například nepřetržitý antivirový skener, nekonečná

optimalizace disku či trvale využívaný server),

- minimální připojení k internetu, nemusí být trvalé (i když pro lepší výsledky

se pochopitelně doporučuje) pro stahování zdrojových balíčků dat a odesílání

výsledků,

- alespoň přibližnou představu, čemu vlastně byste chtěli výkon svého PC

věnovat (na výběr je stále poměrně dost různých projektů),

- konfiguraci nastavenou tak, aby se systém aktivoval po rozumné době

neaktivity počítače, přesněji neaktivity jeho hlavních aplikací.

Ještě je třeba říci, že existují placené systémy distribuovaného počítání.

Nicméně není u nich příliš dobré počítat s nějakým horentním výdělkem, protože

tak vysoký početní výkon, aby výdělku dosáhl, našinec stejně v naprosté většině

případů nesežene, a pokud ano, pak je pravděpodobné, že by náklady v konečném

důsledku bohužel byly vyšší než možný zisk.



Podívejte se na seznam aktivních projektů

http://www.aspenleaf.com/dis­tributed/distrib-projects.html



Tipy pro vás

Už jste si vybrali systém distribuovaného počítání, který vám vyhovuje? Nyní

pro vás máme několik tipů, kterých je moudré se držet (ale v žádném případě to

není povinné).

- Nechte svůj počítač pracovat nepřetržitě. Neustálý provoz PC nijak nevadí a

rychleji dosáhnete zajímavých výsledků.

- Nechte systém distribuovaného počítání běžet kdykoliv, kdy je to možné, ale

jen tak, aby vás jeho činnost nijak neomezovala při práci. Pamatujte, že to je

sekundární úloha vašeho počítače a jako takový byl i navržen. Nemá smysl kvůli

němu omezovat práci nebo hru a stavět vlastní počítač jen kvůli takovému

systému mohou pouze ti největší nadšenci (ačkoliv i takoví zde jsou).

- Nepoužívejte současně více než jeden systém. Smysl by to mělo jedině v

případě, že byste měli opravdu extrémně rychlý počítač, který by neměl co

dělat. A to nepředpokládáme.

- Pravidelně sledujte novinky. Navštěvujte web provozovatele systému

distribuovaného počítání, pročítejte si, na jakých úkolech se momentálně

pracuje či momentálně pracujete, jak je celá věc daleko a co vše ještě zbývá

vypočítat. Vyplatí se to.

- Pokud je to možné, nechte se zapsat na newsletter. Budete tak pravidelně

informováni o novinkách. I to velmi oceníte.

Distribuované počítání představuje velmi zajímavou oblast využívání internetu a

elektronické komunikace v moderním světě vůbec. Pokud se pro ně rozhodnete,

můžete se stát součástí obrovského a potenciálně užitečného systému. Pouze je

potřeba si opatrně a dobře vybírat a kvůli jedné aplikaci navíc rozhodně

nepřestat dodržovat zásady bezpečného používání počítače a výměnných

komunikačních systémů, jimiž aplikace pro distribuované počítání prakticky

vzato jsou. Je třeba si také uvědomit, že jde o aplikace, které fungují

nepřetržitě, využívají výkon počítače a mají přístup k jeho obsahu stejně jako

ke komunikaci s internetem. Instalujte jen to, čemu důvěřujete.