Folding@home

Pokud jste jako malé děti snili o tom, že až vyrostete, stanete se lékaři a budete zachraňovat lidské životy, ale život vás nasměroval jinam, nezoufejte. Máte i jiné možnosti jak pomoci při hledání léků na zhoubné choroby a tím potažmo pomáhat nemocným lidem. Ve článku naleznete rovněž odkazy na návody pro výpočty prostřednictvím CPU, GPU i PS3.

Úvod

Po spuštění prvních projektů distribuovaných výpočtů na konci devadesátých let minulého století si vědci z ostatních oborů rychle povšimli jejich úspěchů a hledali způsoby, jak by se dalo této metody využít k jejich výzkumům. Skupina vědců ze Stanfordské Univerzity se v té době pokoušela odhalit tajemství skládání bílkovin, ovšem scházel jim patřičný výkon. Právě z tohoto důvodu byl projekt přímo ideálním kandidátem na začlenění do distribuovaných výpočtů. Výraz Folding by se do češtiny dal přeložit jako skládání a vystihuje tedy podstatu projektu, kterou je konkrétní uspořádání bílkovin v prostoru. Bílkoviny, které se skládají z aminokyselin, jsou základním stavebním kamenem života. V našich tělech představují základní složky kostí, svalů i vlasů a ve formě enzymů obstarávají většinu biochemických procesů. Aby mohly plnit svou funkci, nemohou existovat jako samostatné řetězce aminokyselin, ale musí vytvořit specifické a komplexní tvary.

Jedním z nejúžasnějších tajemství života je to, že bílkoviny tuto činnost vykonávají spolehlivě, efektivně a rychle. Modelování tohoto procesu v molekulárním měřítku je jedním z největších výzev výpočetní biologie. Její vyřešení by vědcům pomohlo důkladněji pochopit životní procesy a především lépe bojovat se zákeřnými chorobami, které sužují lidstvo, jakými jsou Parkinsonova a Alzheimerova choroba, některé druhy rakoviny a lidská forma BSE (nemoc šílených krav). I sebemenší odchylky ve stavbě bílkovin mohou vést ke vzniku některé z uvedených chorob. 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. Hlavním problémem v simulaci skládání bílkovin je především čas. Bílkoviny se skládají v řádu mikrosekund, avšak průměrnému počítači zabere celý den, aby nasimuloval skládání bílkovin během jediné nanosekundy. Takovouto rychlostí by trvalo téměř 3 roky, než by nasimuloval mikrosekundu skládání bílkovin a zabralo by celé desetiletí analyzovat celý proces skládání jediné bílkoviny. Tímto způsobem stěží vede cesta k vytouženému úspěchu.

Na scéně se poté objevil velice úspěšný projekt SETI@Home, který rychle upoutal pozornost vědců ze Stanfordu. Během jediného roku projekt SETI@Home získal ne desetiletí, ale miliony let výpočetního času. Takovýto výkon by byl dostačující pro vyřešení problému souvisejících se skládáním bílkovin. Projekt byl (po roce vytváření své vlastní platformy) spuštěn 1. října 2000 pod vedením profesora Vijaye Pandeho a Mika Houstona na katedře chemie Stanfordské univerzity. Zpočátku byl podpořen také světovým gigantem - společností Google, která klienta Folding@Home zahrnula do svého nabízeného panelu nástrojů a výrazně tak pomohla jeho rozšíření. Počátky byly tradičně krkolomné, než se podařilo odstranit závažnější chyby a celkově optimalizovat výpočetního klienta. Ale už po dvou letech provozu se objevila první vědecká publikace projektu v časopise Nature.

Nový klient Folding@Home před svým vydáním

Zdroj: http://folding.stanford.edu/

Ačkoli je před námi ještě velký kus cesty k vyléčení závažných nemocí, tento projekt je zajisté jedním ze způsobů, jak můžeme dojít úspěšně k cíli. Projekt Folding@Home patří v současnosti mezi nejznámější, nejdůležitější a také nejvýkonnější vědecké projekty distribuovaných výpočtů. Jeho celkový výpočetní potenciál je v současné době větší než je výkon celého systému BOINC, pod jehož křídla se prozatím nechystá. Ale co není nyní, může být někdy v budoucnu. Tento projekt se ovšem nespokojil pouze s výpočetním výkonem procesorů osobních počítačů, ale rozšířil svoji působnost i na jiné platformy.

Zapojení grafických karet do výpočtů

V roce 2006 vstoupil projekt Folding@Home do historie jako první vědecký projekt distribuovaných výpočtů, který využil výpočetního výkonu grafických karet.

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. Na klientech pro nové grafické karty se průběžně pracuje a v současné době (září 2008) existuje již klient i pro grafické karty firmy nVidia. Nové grafické akcelerátory s podporou DirectX 10 (ATI Radeony řady HD 2***/3***/4*** či GeForce řady 8***/9***/GTX 2**) jsou mnohem výkonnější, a tak odváděný výkon prostřednictvím GPU stále stoupá. Bohužel je s vývojem klienta pro grafické karty spojená spousta problémů.

Je to v prvé řadě způsobené absencí univerzálního rozhraní, přes které by klient mohl přistupovat ke grafické kartě, a dále také odkoupením společnosti PeakStream internetovým gigantem Google. Společnost PeakStream byla specializovaná na tzv. StreamComputing a se společností ATI spolupracovala na vývoji vlastního projektu FireStream, který představoval akcelerované GP-GPU výpočty pomocí grafických jader R580. Situaci také rozhodně neprospěl odchod jednoho z předních vývojářů Stanfordské univerzity. Sám Mike Houston uvedl, že na obou kartách - společnosti nVidia i ATI - narazili na určité problémy. Některé z těchto potíží souvisí s DirectX kompilátorem Microsoftu označovaným jako FXC, další s kompilátorem ovladače, nebo se vyskytly problémy přímo se samotným ovladačem. Houston také zmínil fakt, že 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 neexistuje, a proto Stanfordská univerzita používá 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.

U konkurenční společnosti nVidia je situace poněkud komplikovanější. Firma nVidia používá své vlastní rozhraní označené jako CUDA. Mike Houston označil za hlavní problém s tímto rozhraním jeho nedostatečnou univerzálnost díky kompatibilitě přednostně s hardwarem nVidia a chybějící podporu pro vícečipové systémy. Podle Houstona jejich rozhraní Brook také není dokonalé, ale vzhledem k dobrým zkušenostem z předchozích projektů a základní funkčnosti na hardwaru od všech výrobců se jeví jako nejlepší dostupné řešení. Kompatibilita rozhraní Brook údajně sahá až k integrovaným grafickým akcelerátorům společnosti Intel. Klient ovšem pro tyto čipy vyvíjen prozatím není z důvodu jejich slabšího výkonu. Je možné, že po plánované integraci paměťového řadiče i GPU přímo do procesorů Intel během příštího roku se potenciál integrovaných karet hodně změní. Současná úzká spolupráce se společností ATI bude nadále pokračovat vzhledem k dobrým zkušenostem a vztahům, které vyplynuly z předchozí práce na klientovi projektu Folding@Home a rozhraní Brook. Mike Houston označil za největší problém při spolupráci se společností nVidia výhradní podporu jejích rozhraní CUDA jejími vývojáři, kteří nejsou příliš ochotni spolupracovat na cizím rozhraní Brook.

Díky velkému nasazení programátorů tedy lze využívat k výpočtů grafické karty obou největší výrobců, ovšem stojí to obrovské úsilí. V současné době je již klient projektu Folding integrován přímo do PhysX PowerPacku nVidia (nyní je PhysX i podpora Folding od verze 177.41 obsažena v ovladači pro systémy XP/Vista/Server 32/64bit), který má jako celek demonstrovat sílu těchto karet a také umožnit snadné zapojení například právě do fyzikálních výpočtů. Doufejme, že další spolupráce výrobců s vývojovým oddělením projektu povede k vyřešení všech problémů a pokud možno k vytvoření univerzálního klienta.

Trvalým problémem je zapojení GPU pod systémem Linux, kde grafické karty nebývají využívány a přitom tvoří rovněž velký výpočetní potenciál. Bohužel prozatím žádný GPU klient projektu Folding pro systém Linux vydán nabyl. Paradoxně blíže ke zprovoznění GPU pod Linuxem mají karty nVidia, jejichž ovladač GPGPU CUDA pod Linuxem je již ke stažení od loňského roku.

Dnešních 15.000 grafických čipů má nyní více než 6x větší výkon, než 260 tisíc procesorů osobních počítačů. Dohromady tvoří 57% současného výkonu projektu. Nasazení karet nVidia překonalo ve velmi krátké době celkový výkon grafických karet ATI a v nyní je jejich odváděný výkon téměř 4x větší.

Zapojení PS3 do výpočtů

V březnu 2007 vstoupil projekt Folding@Home do oblasti herních konzolí a dal tak hráčům možnost zkombinovat zábavu s vědeckým výzkumem prostřednictvím výpočetního klienta, který běží na jejich herních konzolích Playstation 3. Spuštění tohoto klienta je možné od 22. března 2007, kdy byl vydán firmware verze 1.6. Během pouhých 2 dní od vypuštění si výpočetního klienta stáhlo na 100.000 uživatelů. Multijádrové procesory Cell herní konzole Playstation 3 jsou navrženy pro extrémně rychlé výpočty, překonávající průměrné osobní počítače 10 - 20 krát. Ačkoli herní konzole Playstation 3 tvoří pouhých 12% ze všech zapojených strojů v tomto projektu, na jeho celkovém výkonu se podílejí úctyhodnými 34%, což svědčí o jejich obrovském výkonu.

Návod na zapojení PS3 do výpočtů:http://manuals.playstation.net

Klient projektu Folding@Home na herní konzoli Playstation 3

Zdroj: http://en.wikipedia.org/

Hranice 1 petaFLOPS pokořena

Dne 16. září 2007 došlo k dalšímu zápisu do historie projektů distribuovaných výpočtů. Projekt Folding@Home tehdy překonal hranici 1 petaFLOPS, čili tisíc miliard operací s plovoucí čárkou za sekundu. Jednalo se o vůbec první počítačový systém, který pokořil tuto hranici a oprávněně byl tedy zapsán do Guinnessovy knihy rekordů. Jen tak pro porovnání; tehdy se jednalo o kombinovaný výkon 7 nejvýkonnějších superpočítačů na světě a první z nich, superpočítač Blue Gene/L společnosti IBM měl v té době výkon „pouhých“ 0,478 petaFLOPS.

Statisiky výkonu v době pokoření hranice 1 petaFLOPS

Zdroj: http://folding.stanford.edu/

Nemusíme ani komentovat obrovský potenciál, který se skrývá uvnitř projektů distribuovaných výpočtů. Na obrázcích je vidět složení výkonu při překročení mety 1 petaFLOPS. V současné době se výkon tohoto projektu pohybuje nad hranicí 3 petaFLOPS. Výkon je uveden na následujícím obrázku. Aktuální stav naleznete na této adrese: http://fah-web.stanford.edu/cgi-bin/main.py?qtype=osstats

Rozložení odváděného výkonu 05.09.2008

Zdroj: http://folding.stanford.edu/

Na obrázku je vyobrazena hodnota průměrných počtů milionů operací s plovoucí čárkou na jednotlivých klientech během jednoho dne. Jednotlivé výpočetní údaje jsou aktuální k 05.09.2008, takže se výkon osobních počítačů mohl od té doby samozřejmě zvýšit.

Za aktivní CPU procesory jsou označeny ty, které vrátily zpracovanou jednotku v předešlých 50 dnech. Za aktivní GPU procesory jsou označeny ty, které vrátily zpracovanou jednotku v předešlých 10 dnech z důvodu kratšího termínu pro vrácení. Za aktivní PS3 procesory Cell jsou označeny ty, které vrátily zpracovanou jednotku v předešlých 15 dnech.

Závěr

Nezbývá nám nic jiného, než popřát celému týmu projektu Folding@Home mnoho štěstí při dalším vývoji a vyjádřit svoji podporu třeba zapojením do projektu. Více než stonásobné urychlení výzkumu v praxi znamená, že důležité objevy či poznatky, ke kterým bychom jinak dospěli pomocí současných výpočetních prostředků za 100 let, můžeme reálně očekávat již v následujícím roce. Kdo ví, kdy někdo z nás bude potřebovat léky vyvinuté právě za pomoci vědeckého projektu Folding@Home.

Statistika Czech National Teamu na projektu: http://fah-web.stanford.edu/
Podrobná statistika Czech National Teamu na projektu: http://folding.extremeoverclocking.com/
 

Autor:
Lukáš Michálek (Zod)
Dušan Vykouřil (forest)

Korektor:
JardaM (gramatika)
Hermes3 (obsah)

Grafické zpracování:
Dušan Vykouřil (forest)

Použité zdroje:
Stránky projektu Folding@home
Wikipedia
http://www.beyond3d.com/

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.

Rubrika:


Nahoru