Distribuované výpočty na moderních grafických kartách

Grafické karty většina z nás používá ke sledování oblíbených filmů nebo hraní čím dál náročnějších her. Pojďme se ale podívat na trochu jiné využití. Grafické karty můžeme v domácích počítačích použít i pro vědecké účely, například pro simulace vývoje bílkovin, naší Mléčné dráhy nebo k nalezení matematických veličin.

Nový nástroj s několikanásobným výkonem

Vývoj dnešní výpočetní techniky dospěl do stádia, kdy ke zvýšení výkonu samotného procesoru pro domácí a kancelářské použití už není mnoho důvodů. Místo zvýšení výkonu samotného procesoru jde vývoj cestou vícejádrových procesorů s nižším taktem, ale s větším počtem jader na jednom čipu. Nejnovějším trendem je další miniaturizace a úspora ve spotřebě, ovšem výkon již prakticky nijak rapidně neroste. Důraz vývoje posledních let se soustředil spíše směrem ke zvyšování výkonu GPU (grafic processing unit) a tím i samotných grafických karet. Zde se hranice stále posouvají a tím i nároky na potřebný hardware. Není se proto čemu divit, že GPU v dnešních grafických kartách v mnoha ohledech předčí výkon klasických procesorů. Výkonem GPU nelze plně nahradit operace, které provádí CPU, lze však některé aplikace naprogramovat tak, že využívají právě potenciálu GPU. Po masovém rozšíření distribuovaných výpočtů využívajících miliony domácích počítačů a jejich CPU na přelomu tisíciletí, zažívají tyto výpočty novou vlnu rozšíření právě tímto směrem.

Distribuované výpočty jsou vědeckým oborem, do kterého se může zapojit kdokoliv z nás a stačí mu k tomu dnes prakticky běžné vybavení domácnosti - počítač a připojení k internetu. Ve většině projektů distribuované výpočty fungují tak, že je náročná výpočetní práce rozdělena na spoustu dílků a ty jsou následně rozesílány na jednotlivé počítače, které si o ně řeknou. Po zpracování každého dílku jednotlivé počítače samy odešlou výsledná data zpět do centra projektu a tam dojde ke spojení výsledků opět do jednoho celku. Tímto způsobem je možné zpracovávat obrovská množství dat s minimálními požadavky na jednotlivé stroje, protože tyto dílky mají většinou jen malou velikost a výpočty trvají od několika minut do několika hodin. Projektů distribuovaných výpočtů je již více než sto s rozličným zaměřením a hned několik jich využívá i velkého potenciálu grafických karet.

Podrobněji se o distribuovaných výpočtech dočtete například zde >>>

Vysoce specializovaná jádra grafických karet by nebylo možné využít pro jiné účely než zobrazovací (filmy, hry atd.) bez instrukcí, které to umožnily. Proto světlo světa spatřila roku 2007 technologie CUDA (Compute Unified Device Architecture) od nVidia a Stream od ATI v roce 2008.

CUDA podporuje různé jazyky a API, jako Fortran, OpenCL, C nebo DirectX Compute a je dostupná na nejpoužívanějších operačních systémech, jako je Linux, Windows a OS X. ATI Stream bylo nabídnuto široké veřejnosti poprvé v Catalystech verze 8.12. I tak se ale vývoj aplikací pro ATI potýkal s mnohými problémy. To bylo v prvé řadě způsobené absencí univerzálního rozhraní, přes které by klient mohl přistupovat ke grafické kartě. Některé z těchto potíží souvisejí s kompilátorem DirectX Microsoftu označovaným jako FXC, další s kompilátorem ovladače, nebo se vyskytly problémy přímo se samotným ovladačem.

Veškerý vývoj by byl podstatně urychlen a usnadněn, kdyby existovalo nějaké univerzální či standardizované rozhraní. Taková obdoba Direct3D či OpenGL pro GP-GPU. Toto rozhraní ovšem zatím neexistuje, proto Stanfordská univerzita vyvinula v roce 2004 rozhraní Brook, což je rozšíření jejich vlastního programovacího jazyka C. Díky spolupráci se společností ATI je možné pomocí rozhraní Brook přistupovat k CTM - Close to Metal, což představuje rozhraní ATI pro GP-GPU. ATI Stream je ale také používána, záleží na programátorech jednotlivých projektů.

V poslední době se mluví o OpenCL (Open Computing Language) vytvořeném roku 2008 pod záštitou konsorcia Khronos. OpenCL je rozšířením OpenGL a je použitelná na ATI, nVidia, dokonce i na integrovaných grafických kartách Intel. Krom této univerzálnosti je výhodou možnost počítat složitější simulace díky rozšířeným možnostem programování. Mnohdy je považován za budoucnost počítání na grafických kartách.

Zatím není mnoho projektů, do kterých lze zapojit grafické karty. Majitelé karet ATI mají výběr dokonce ještě omezenější, než majitelé značky nVidia. Zjednodušeně řečeno - ATI má lepší HW, zato však nesmírně mizernou podporu pro vývojáře aplikací pro GPU, nVidia je na tom naopak (relativně horší HW, ale obrovská podpora). Podívejme se tedy podrobněji na všechny projekty, u kterých je GPU možné zapojit. I když projektů není zatím mnoho, konečné rozhodování nemusí být zrovna jednoduché.

Biologické projekty

Prvním projektem, který byl v distribuovaných výpočtech spuštěn na grafických kartách, byl v roce 2006 Folding@Home. Ten patří v současnosti mezi nejznámější a také nejvýkonnější distribuované projekty. Provozuje ho Stanfordská univerzita a výzkum probíhá v oblasti struktury bílkovin. Projekt slouží k nalezení léků na Alzheimerovu a Parkinsonovu chorobu, některé druhy rakoviny a lidskou formu BSE – nemoci šílených krav. Výzkum je zaměřen na tvorbu a rozpad bílkovin na základě mRNA, což je jednovláknová nukleová kyselina vznikající při transkripci DNA. I sebemenší odchylky ve stavbě bílkoviny mohou vést ke vzniku některého ze jmenovaných závažných onemocnění.

Stanfordská univerzita spolupracovala s producentem grafických čipů ATI a výsledkem byl GP-GPU klient, který byl schopen příslušné vědecké výpočty provádět na aritmeticko-logických jednotkách grafického čipu, známých jako pixel shadery. Dne 2. října 2006 byl klient vypuštěn k veřejnému beta testu. Během pouhých 9 dní od svého vypuštění bylo dosaženo výpočetního výkonu 31 tera FLOPS za pomoci pouhých 450 grafických karet řady Radeon X1900. Tento výkon 70x převýšil tehdejší přínos procesorů osobních počítačů a jen potvrdil obrovskou převahu grafických karet ve výpočtech s plovoucí desetinnou čárkou. Máte možnost zapojit jak ATI, tak kartu nVidia. Jedním z výsledků je sedmisetnásobné zrychlení výpočtů na GPU oproti počítání na CPU. To je ohromná síla a tím se také nabízí možnost poslat na grafické karty náročnější jednotky a jednotky, které je zapotřebí vrátit v krátkém termínu. U ATI je možné zapojit karty od série X2xxx (jádro R6xx), přičemž musí být instalovány minimálně Catalysty verze 8.7. Karty X1xxx je možné zapojit jen se starší verzí GPU klientů.

Osobně mohu poznamenat, že počítat na integrovaných grafikách není příliš vhodné. Výkon je srovnatelný s klasickým CPU klientem. Na HD3300 jsem dosáhl 400PPD (Points Per Day), na HD4670 je průměrný výkon 1400PPD. Dostupný maximální výkon ATI je dosažen s ATI HD5870, a to průměrně 5000PPD. Záměrně píši průměrně, protože každý z podprojektů je jinak bodově ohodnocen a jinak časově náročný. Co se týká karet nVidia, lze použít jakékoli, které zvládají technologii CUDA. Konkrétně od série 8 s použitím driverů minimální verze 177.35. Karty nVidia jsou pro Folding mnohem vhodnější, podávají podstatně větší výkon než konkurenční ATI. NVidia 9600GT podává srovnatelný výkon s ATI HD4870 a to 3300PPD. Nejvyšší výkon je schopna podat nVidia GTX480, podle předběžných výsledků až 16000PPD. Již nějakou dobu se v aktualitách zmiňuje, že pomalu končí testování nové verze jádra pro nVidia. Toto nové jádro by již nemělo počítat pomocí technologie CUDA, ale mělo by již používat OpenCL. Zkušební podprojekty jsou již běžně dostupné. Pro ATI je zatím toto jádro nedostupné, ale usilovně se na něm pracuje. Po uvolnění a uvedení do plného provozu můžeme být zvědavi, jak si bude nVidia vést ve výkonech oproti ATI. Jádro pro oba výrobce karet bude totiž stejné. Grafické karty lze provozovat pod operačními systémy Windows a Linux. U Linuxu je ale situace horší, oficiální aplikace neexistuje, existuje však možnost použít WINE Wrapper. Přes něj lze GPU aplikaci rozběhnout.

Folding má na svém kontě 72 publikovaných výsledků, které jsou z oblasti objevů v biologii i pokroků v simulacích, dále pak i několik dalších ocenění v této oblasti výzkumu. Jako příklad snad postačí, že se podařilo sledovat a včas utlumit mutace ptačí chřipky na jiné živočišné druhy než jen ptáky. Výzkumníci zkoumají mutaci viru, která způsobuje přenos mezi živočišnými druhy.

Druhým projektem, do kterého bylo možné zapojit grafickou kartu, byl projekt GPUGRID v systému BOINC. Ten spustil GPU aplikaci v červenci 2008. Projekt je zaměřen na výpočty v oblasti biologie a biomedicíny. Konkrétně studuje charakteristiku biomolekul, jejich vzájemné ovlivňování a dynamické chování. Úlohy můžete počítat pouze na kartách nVidia. Doporučeny jsou série GTX 2xx, 4xx, 5xx a Tesla 10. Vedle těchto karet lze však použít jakoukoli jinou, která zvládne technologii CUDA. Pracuje se i na možnosti zapojit karty ATI, ale to je prozatím ve fázi testování. Pořád je nedostatečná podpora ze strany ovladačů a výsledky mnohdy skončí chybou nebo je výpočet neadekvátně pomalý. Lze počítat pod operačními systémy Windows a Linux, ten však jen ve verzi 64bit. Vytížení CPU je vysoké, bodové ohodnocení mírně nadprůměrné.

Dalším z biologických projektů systému BOINC je The Lattice Project. Jedná se o projekt vědců z University of Maryland. Měl by tvořit jakousi základnu pro využití různých typů vědeckých aplikací. Tím je dána i velká odlišnost práce, a to jak nároky na hardware, tak i délkou výpočtu, která se může pohybovat od pár minut až po několik dní. Všechny výpočty budou součástí akademických vědeckých výzkumů a jsou financovány z grantů a státních dotací. Momentálními podprojekty jsou GARLI, HMMPfam a MARXAN. Na grafických kartách, konkrétně na nVidiích, lze ale počítat jen GARLI. Pojďme si jej tedy přiblížit i přes fakt, že naposledy byly testovací pracovní jednotky ke stažení v prosinci 2010.

Fylogeneze nebo také fylogenetický vývoj je vývoj druhů organismů v historickém sledu ve smyslu evoluční teorie. Podle toho, jak se ubírala fylogeneze, se dnes tvoří stromy příbuznosti druhů. Fylogenetický strom ("strom života") je grafické zobrazení připomínající strom, jímž se znázorňují příbuzenské vztahy mezi různými biologickými druhy či jinými taxonomickými jednotkami, o nichž se předpokládá, že mají jednoho společného předka. Každé větvení (uzel) představuje hypotetického posledního společného předka. Každá větev znamená jednu evoluční linii, na jejímž konci jsou dané taxony. Podle stupně příbuznosti dílčích taxonů se rozeznává polyfyletický, parafyletický a monofyletický taxon. Projekt se zabývá právě sestavováním těchto fylogenetických stromů, prostřednictvím analýzy nukleotidů a aminokyselin. Momentálně probíhá výzkum druhu Lepidoptera, tedy motýlů a můr. Musím ale upozornit, že je poněkud náročnější než ostatní. Je upozorňováno na větší zatížení RAM, a to 0,3-1,2 GB na jednu jednotku, takže počítač, na kterém budete počítat, by měl mít minimálně 3 GB RAM, optimálně celých 4 GB.

Posledním projektem z oblasti biologie, který již vypustil práci pro GPU, je DrugDiscover@Home. Jedná se o výzkumný projekt, který se snaží modelovat sloučeniny, které by mohly být využity při výrobě nových léků. Projekt je v alfa fázi a nemá formální vztahy s vysokými školami ani s farmaceutickým průmyslem. Pracovní jednotky v poslední době nejsou k dispozici. Pokud jsou, můžete je spočítat pomocí grafických karet nVidia. Usilovně se pracuje na vývoji aplikace pro ATI, ovšem s obdobnými výsledky, jako v projektu GPUGRID.

Astronomické projekty

SETI@home je jedním z prvních projektů v oblasti distribuovaných výpočtů vůbec. Zahájení ostrého provozu se datuje na květen roku 1999. Aplikace pro grafické karty byla však spuštěna mnohem později. SETI@home se skládá ze dvou podprojektů, prvním je SETI@home Enhanced. Ten je asi znám velmi dobře. Cílem je objevit signály umělého původu, které by odhalily přítomnost mimozemské civilizace ve vesmíru. K zachycení přicházejících signálů se využívá největšího nepohyblivého radioteleskopu na světě v portorickém Arecibu s průměrem talíře 306 m. Signály zachycené radioteleskopem se ovšem skládají převážně z rádiového šumu. Toto rušení je tvořeno signály z pulzarů a kvazarů ve vesmíru, televizním a satelitním vysíláním, případně radarovou navigací. Důkladná analýza zachycených signálů proto vyžaduje obrovský výpočetní výkon, který se stal dostupným až s příchodem distribuovaných výpočtů. Zde můžete pomoci prostřednictvím karet nVidia. Automaticky je nabízena nativní aplikace pouze pro Windows 32bit. Stáhnout lze ale i optimalizované aplikace, které podávají mnohem větší výkon než standardně nabízené. Mezi optimalizovanými existuje i verze pro ATI OpenCL, která má podstatně nižší výkon, než aplikace pro nVidii. Bodové ohodnocení aplikace pro nVidii je průměrné, OpenCL aplikace podprůměrné, vytížení CPU 5 až 15 %. Mezi optimalizovanými existuje i verze pro ATI OpenCL. Doposud nebyl žádný prokazatelný signál od mimozemské civilizace odhalen a vědeckými metodami potvrzen.

Druhým podprojektem SETI@Home je Astropulse. Hledá velmi silné pulzy, které by pokryly široké pásmo. Jak tento signál cestoval mezihvězdným prostorem, kolidoval s hmotou, která mu přišla do cesty. To vedlo k relativnímu zpomalení nižších frekvencí oproti vyšším v efektu zvaném disperze. Pokud bychom věděli, kolik disperzí pulz obdržel, mohli bychom ho zpětnou úpravou vrátit do původní podoby. Protože ale netušíme, s jakým množstvím hmoty signál na své cestě k naší planetě kolidoval, musíme vzít v úvahu všechny možnosti, které ovšem vyžadují obrovský výpočetní výkon. Tímto způsobem bychom mohli zachytit také vypařující se černé díry, případně nové pulzary. Zde je nabízena možnost počítat jen na kartách ATI (stream) s tím, že po připojení si musíte stáhnout optimalizovanou aplikaci a tou přeinstalovat aplikaci staženou. Astropulse je oficiálně podporován jen na CPU, ale touto optimalizací zapojíte i GPU, nicméně i tak je využíváno jedno jádro CPU a kreditové ohodnocení je v porovnání se zapojením GPU do jiných, dříve zmiňovaných projektů minimální, až směšné. Další dostupná optimalizovaná aplikace je ATI OpenCL, která má podstatně nižší výkon, než aplikace pro nVidii. Aby nebylo negativ pro zapojení GPU málo, zmíním ještě fakt, že práce pro Astropulse je jen občas. Vezmeme-li v úvahu počet připojených počtářů, dostanete jednotku opravdu jen zřídka.

Dalším je projekt MilkyWay@Home, který provozuje Rensselaer Computer Science Department. Zabývá se průzkumem a modelováním Mléčné dráhy. Je postaven na modelu oblohy zvaném Sloan Digital Sky Survey (SDSS), ambiciózním projektu, jehož cílem je zmapovat co největší část oblohy. Do dnešního dne SDSS zmapoval asi čtvrtinu oblohy, přibližně 300 milionů objektů. Převažující všeobecná představa je v současné době taková, že Mléčná dráha ve skutečnosti pohltila vícero malých galaxií, s největší pravděpodobností se jedná o zbytky galaktických srážek. Tyto kolize nastaly v pradávných dobách a pokračují se sníženou intenzitou dodnes. Trpasličí galaxie v souhvězdí Střelce je jednou z nejbližších takových zničených galaxií přežívajících uvnitř té naší a je proto objektem primárního zájmu astronomů MilkyWay@Home. Momentálně je projekt ve stádiu modelování "plátků" či řezů oblohy. Šířka řezu je 2,5 stupně a program se snaží vytvořit výřez s rovnoměrnou hustotou hvězd odstraněním hvězdných proudů či ramen. Odstraněné hvězdné proudy mají zvětšené cylindrické rozložení (to znamená hustější v blízkosti středu proudu a řidší směrem k jeho okraji).

Z každé simulace (skládající se z mnoha pracovních jednotek) je tedy potřebné získat tři užitečné údaje/stavy:

  • Na obrázku složeném z pracovních jednotek s odstraněnými hvězdnými proudy by mělo zůstat rovnoměrně rozložené pozadí – pokud by tam zůstávaly nerovnoměrnosti, znamenalo by to, že nejsou správně vypočítané sférické parametry.
  • Vektory (směrování bodů v prostoru) by měly být soudržné (měly by mít vzájemnou souvislost) – proud hvězd by měl volně plynout prostorem.
  • Vektory náležící kolmé rovině by měly být co nejvíce paralelní, opět z důvodu, že proud by měl volně proudit prostorem.

 

Realizovány jsou už všechny tyto body. Hlavním cílem je nyní vylepšit existující postupy a údaje tak, aby měly vyšší přesnost. Za tímto účelem byla zkombinována úhrnem všechna data z modelu SDSS, z nich se odfiltrovaly výřezy, které jsou kolmé na hvězdný proud; důvodem je, že kolmé řezy se snadněji analyzují. Pomoci můžete zapojením karet ATI (pouze Windows) i nVidia (Windows i Linux), aplikace pro ATI je výkonnější, než pro nVidie. Bodové ohodnocení aplikace pro nVidii je průměrné, ATI aplikace nadprůměrné, vytížení CPU minimální.

Projekt Einstein@home se pomocí několika interferometrů obrovských rozměrů snaží zaznamenat a v další fázi zkoumat gravitační vlny ve vesmíru. Existenci těchto gravitačních vln předpověděl již před 100 lety Albert Einstein a na konci dvacátého století se tuto teorii podařilo nepřímo ověřit.

Stále nám ale schází přímý důkaz a také to hlavní, možnost jejich zkoumání, díky kterému bychom se mohli nepřímo podívat do historie celého vesmíru zpětně až k velkému třesku. Je to možná neuvěřitelné, ale v gravitačních vlnách by se opravdu dalo číst téměř jako v knize, protože mají tu ojedinělou vlastnost, že i když jejich síla časem postupně polevuje, dají se po neuvěřitelně dlouhé době pomocí velice citlivých interferometrů zachytit. V těchto gravitačních vlnách je zaznamenána každá velká událost, která se v historii vesmíru stala.

Projekt kromě využití CPU, podporuje výpočty také na grafických kartách nVidia (Windows i Linux). Pokud povolíte ve svých nastaveních projektu počítání na GPU, automaticky se stáhne GPU aplikace. Bodové ohodnocení je podprůměrné, vytížení CPU cca 30%.

Matematika a výzkum nových technologií

Collatz Conjecture navazuje na ukončený CPU projekt 3x+1@home. Zabývá se metodou 3x+1, nazývanou také Collatz Conjecture, která provádí rozklad čísel. Čím je číslo větší, tím je rozklad složitější. Metoda spočívá v tom, že pokud máme číslo dělitelné dvěma a po dělení získáme celé číslo, dělíme jej znovu. Pokud celé číslo nedostaneme, vynásobíme jej třemi a přičteme jedničku. Tento postup aplikujeme do té doby, než se dostaneme k jedničce. Každé číslo by mělo být možné touto metodou rozložit, záleží pouze na počtu operací. Nu a zde se dostáváme k tomu oč v projektu jde. Ke každému číslu se snaží najít počet operací a zároveň potvrdit že jde takto rozložit opravdu každé číslo.

Základna projektu sídlí ve městě Wood Dale ve státě Illinois. Zajímavostí Collatzu je fakt, že spoléhá hlavně na grafické karty, konkrétně na ATI pod systémem Windows. Počtář může nechat BOINC manager stáhnout aplikaci automaticky nebo má možnost instalace aplikací, které dovolují vlastní úpravy prostředků a rychlosti výpočtu. ATI pod Linuxem je v tuto chvíli nabízena pouze pro stažení na 64bitovou verzi. Pro 32bit Linuxu je vedena jako experimentální a také je k dispozici jen pro stažení. Není tedy nabízena automaticky, ale je možné ji stáhnout a nainstalovat manuálně. Karty nVidia jsou na tom obdobně, automaticky jsou aplikace nabízeny pro systémy Windows, pro 32 a 64bitové verze Linuxu jsou dostupné pro stažení a manuální instalaci. Aplikace pro ATI je výkonnější, než pro nVidii. Bodové ohodnocení aplikace pro nVidii je mírně nadprůměrné, ATI aplikace nadprůměrné, vytížení CPU minimální. U každého výsledku je uveden počtář, který číslo objevil a datum nálezu. Dosud největší počet operací měl nález ze srpna roku 2009.

Za vznikem tohoto projektu stojí jeden z prvních projektů distribuovaných výpočtů distributed.net. Již od roku 1997 se bylo možné do projektu zapojit prostřednictvím CPU mimo systém BOINC a nedávno byl formou wrapperu implementován do tohoto systému. Je tedy možné počítat jak pod BOINC, tak pomocí vlastních klientů. Zapojit je možné jak karty ATI, tak nVidia. GPU ATI jsou však na tomto projektu na výkonové špičce. Bodové ohodnocení aplikace pro nVidii je průměrné, ATI aplikace vysoce nadprůměrné, vytížení CPU minimální s výjimkou CUDA 3.1 aplikace na nejvýkonnějších nVidia GPU. Předmětem výpočtu je podprojekt RC5-72, který pracuje na 72-bitové variantě kódovacího algoritmu. Statistiky jsou společné jak pro počtáře v BOINC, tak na jejich vlastních klientech.

Projekt PrimeGrid se skládá hned z několika matematických podprojektů. První, který podporoval výpočty prostřednictvím grafických karet, nesl název AP26 Search a bylo potřeba si jej v nastavení svého osobního účtu na projektu povolit. AP26 Search hledal prvočísla, která od sebe dělí shodný počet běžných čísel, tedy například 3,7,11, která dělí od sebe shodně 3 čísla

Jde tedy o nalezení největšího množství prvočísel, která jsou od sebe v číselné řadě stejně vzdálená. Do doby spuštění projektu bylo nalezeno 25 takovýchto prvočísel a tak bylo hlavním úkolem najít ještě početnější číselnou řadu. Nejbližší další je posloupnost 26 prvočísel. Podporovány byly jen grafické karty společnosti nVidia a to bez dlouhodobějších výpadků v poskytování práce. V dubnu roku 2010 bylo AP26 nalezeno a projekt úspěšně ukončen.

Dalším podporovaným podprojektem pro GPU výpočty v projektu PrimeGrid se stal Proth Prime Search (Sieve). Jeho úkolem je hledání nevhodných kandidátů k a n, tedy taková k a n, pro která nemůže být výsledek k * 2n + 1 prvočíslo. Touto hrubou selekcí projekt výrazně sníží počet prováděných testů v podprojektu Proth Prime Search (LLR). Aplikace podporuje grafické karty společnosti nVidia (CUDA, Windows i Linux) i ATI (OpenCL, Windows i Linux). Práce je dostatek, vytížení CPU minimální a bodové ohodnocení vysoce nadprůměrné. Aplikace pro ATI je méně výkonná, než pro nVidii.

Zatím posledním podprojektem pro GPU je Cullen/Woodall Prime Search (Sieve). Jeho úkolem je hledání nevhodných kandidátů n, tedy n, pro která nemůže být výsledek n * 2n + 1 a n * 2n - 1 prvočíslo. Touto hrubou selekcí projekt výrazně sníží počet prováděných testů v podprojektech Cullen Prime Search (LLR) a Woodall Prime Search (LLR). Aplikace podporuje pouze grafické karty společnosti nVidia (CUDA, Windows i Linux). Práce je dostatek, vytížení CPU minimální a bodové ohodnocení je nadprůměrné.

Cílem zatím posledního GPU projektu DistrRTgen (Distributed Rainbow Table Generator), je dokázat, že jednoduché hashování hesel je nebezpečné a přimět tak vývojáře používat více bezpečné metody. Díky rozložení do většího spektra řetězců a distribuování na BOINC klienty, může projekt vygenerovat masivní "rainbow tables", které jsou schopny prolomit hesla delší, než kdykoli předtím. "Rainbow tables" je pojem pro novější generaci crackingu (prolomení hesla), který využívá výkonější metody pro prolomení hesel zašifrovaných pomocí technologie MD5 (Message Digest 5) a LM (Lan Manager). Výsledné "Rainbow tables" jsou zveřejněny na webu projektu a jsou volně ke stažení. Aplikace podporuje pouze grafické karty společnosti nVidia (CUDA, Windows i Linux). Práce je relativní dostatek, vytížení CPU vysoké a bodové ohodnocení je průměrné.

AQUA (Adiabatic QUantum Algorithms - adiabatické kvantové algoritmy) je výzkumný projekt komerčního charakteru provozovaný společností D-WAVE Systems, jehož cílem je odhadnout výkonnost adiabatických supravodivých kvantových počítačů s ohledem na rozmanitost problémů, které vznikají v oblastech od materiálového inženýrství (věda o vlastnostech a možnostech použití materiálů) až po uplatnění v praxi. Pojem adiabatický označuje termodynamický děj, při kterém nedochází k tepelné výměně mezi látkou a okolím. Děj probíhá při dokonalé tepelné izolaci, takže soustava žádné teplo nepřijímá ani nevydává. Za adiabatický lze pokládat takový děj, který proběhne tak rychle, že se výměna tepla s okolím nestačí uskutečnit. Do projektu je možno zapojit pouze grafické karty nVidia pod operačními systémy Windows s podporou 32bitové aplikace a Linuxu, kde jsou podporovány jak 32bitové, tak 64bitové verze. Výsledky doposud nejsou známy. Co se týká jednotek pro grafické karty, tak naposledy byly vydány v červnu 2009. Pro CPU jsou vydávány jednotky bez dlouhodobějších výpadků.

O projektu Hydrogen není mnoho informací a přísun práce často pokulhává. Někdy i měsíce není co počítat. Je to možná dané i tím, že projekt není pod žádnou univerzitou, společností, ani výzkumným ústavem. Hydrogen chce prostřednictvím BOINC provádět výzkum v oblasti výroby a zpracování vodíku. Když je práce, je možno ji spočítat na kartách nVidia pouze pod systémem Windows. Usilovně se pracuje na vývoji aplikace pro ATI, ovšem s obdobnými výsledky, jako v projektu GPUGRID.

Závěrečné shrnutí

Distribuované výpočty urazily obrovskou cestu rozvoje a v mnoha oblastech si musely zasloužit své dnešní renomé. Za většinou projektů naštěstí stojí světové univerzity a skutečný vědecký potenciál. Výsledky tak je možné precizně zpracovávat, publikovat a posouvat vývoj neustále kupředu. Kdo by si ještě před pár lety pomyslel, že bude možné na domácím počítači simulovat srážky částic v urychlovači velikosti LHC, modelovat vývoj klimatu na desítky let dopředu, vypočítávat oběžné dráhy vesmírných těles, která hrozí srážkou se Zemí, nebo například zkoumat vývoj a historii naší galaxie - Mléčné dráhy. To je jen střípek z celkem již více než 100 dnešních projektů distribuovaných výpočtů, do kterých jsou zapojeny statisíce lidí na světě a do nichž se může připojit kdokoliv z nás.

Rozvoj výpočtů na grafických kartách dává distribuovaným výpočtům novou mocnou zbraň. Zbraň, která již nyní výzkum několika projektů posouvá mnohem rychleji kupředu, než kdyby byly odkázané pouze na výkon CPU. Z dlouhodobého hlediska je v této oblasti obrovský potenciál využití a jistě se dočkáme spousty projektů, které budou schopny využívat pro výpočty jak CPU, tak i GPU. Vždyť obrovský výkon se dnes již neskrývá pouze v sálových superpočítačích, ale s modernější grafickou kartou jej má ve své domácnosti leckterý z nás. Když už jej doma (nebo v práci) máme, tak je škoda jej nechat pouze stárnout a ztrácet na hodnotě. Stačí jen chvilka a tento výkon je plně využitý pro dobro celého lidstva a ruku na srdce - takovou jednoduchou instalaci dnes zvládají i malé děti.

 

 

Distribuované výpočty na GPU

 

KLADY [+]

 

[-] ZÁPORY

 

skvělý poměr výkon/spotřeba

 

jako každé zatížení počítače, zvedne spotřebu

 

raketový vzestup ve statistikách počtářů

 

částečná degradace výkonu letitých DC počtářů na CPU, ovšem i ti již částečně GPU výpočty využívají

 

v topné sezóně skvělý způsob jak si udělat v pracovně příjemněji a zároveň pomoci v různých oblastech vědy

 

při zatížení se grafické kartě zvedá její spotřeba (někdy i hlučnost) a vyzařované teplo

 

skvělý způsob, jak využít plně a užitečně potenciálu moderní grafické karty

 

plné vytížení může snížit životnost grafické karty, ovšem mnohem dříve s největší pravděpodobností technicky zestárne

 

snadná instalace a bezobslužný provoz

 

ne každá grafická karta lze pro GPU výpočty využít, ale v takovém případě lze zapojit do výpočtů alespoň CPU

Návody:

Jek zapojit do výpočtů grafickou kartu nVidia
Jek zapojit do výpočtů grafickou kartu ATI
Jak donutit ATI a nVidia, aby táhly za jeden provaz

 

Pokud budete mít jakékoliv potíže, tak se podívejte do sekce rad a návodů týkající se GPU výpočtů, nebo položte na fórum svůj vlastní dotaz.

Autoři:
Petr Nekvinda (petnek)
Dušan Vykouřil (forest)
Ondřej Hájek (nenym)
Jakub Sedláček (gigadisk)

Korektoři:
Jaroslav Mikšovský (JardaM)
Vít Kliber (vkliber)

Svůj komentář na tento článek, co by mělo být opraveno, či doplněno můžete napsat do této sekce na našem týmovém fóru. Téma s komentářem k tomuto konkrétnímu článku, by mělo nést stejný název, jako článek na webu.


Nahoru