Grid computing Co je grid computing Grid computing je nový termín, s nímž se dnes můžeme setkat na prezentacích většiny velkých hardwarových firem. Vizionáři těchto firem pod ním vidí novou infrastrukturu, která od základu změní způsob, jakým přemýšlíme o počítačích. Základní myšlenkou gridu je spojení více počítačů do jednoho systému, který je schopen nabízet svůj výpočetní výkon mnoha uživatelům. Je to, jako byste sečetli procesorové takty všech počítačů a využívali je poté právě tam a v tom čase, jak je potřeba. Již dnes se můžeme setkat s podobnými systémy, kdy je využito mnoha počítačů k dosažení velkého výkonu (klastry). Nejvíce uživatelů gridů najdeme v aplikované vědě, například v genovém inženýrství, bioinženýrství a ve vývoji nových léků. V automobilovém průmyslu se gridy využívají při simulaci bariérových a napěťových testů či při modelování proudění, vývoj elektronických součástek je používá při simulacích a ověřovacích testech a při zpětném inženýrství. Zábavní průmysl využívá gridů při animaci a renderingu filmů a těžařský průmysl při vizualizaci a analýze k hledání nových nalezišť. Softwarové firmy používají gridy při sestavování kódu a vědecký výzkum při výpočtu úloh s velkými výpočetními nároky (HPC - podrobnější článek o problematice HPC a gridů najdete na Chip CD). Dnes se můžeme setkat se třemi typy gridů: * Dobrovolný - vlastník počítače souhlasí s využitím svého stroje v gridu. Nainstaluje si na něj program, který může v okamžicích, kdy on počítač nepoužívá, počítat distribuované úlohy. Příkladem takového projektu je například program SETI@home. * Sdílený - administrátor počítačů nainstaluje na jím spravované stroje program, který umožní využívat tyto stroje v době, kdy je jejich uživatelé nevyužívají. Příkladem mohou být univerzitní počítače, které přes den slouží pro výuku a přes noc počítají vědecké projekty. * Dedikovaný - skupina počítačů určená pouze pro práci v gridu, která je většinou centrálně spravována. Takové využití najdeme v mnoha vědeckých projektech. Ne pro všechny typy úloh a problémů je grid to nejlepší řešení. V dnešní době najde v gridu nejlepší uplatnění úloha, která má spíš charakter dávkový s malým počtem transakcí, která však trvá dlouho a případně umožňuje i běh ve více vláknech (viz graf na obrázku). Co dělá grid gridem Existuje pět nejdůležitějších znaků, podle nichž lze určit, že daná síť je gridem: * Abstrakce výpočetních zdrojů - v okamžiku, kdy zadává úlohu k výpočtu, se uživatel nemusí starat o hardwarové adresy a logická jména jednotlivých počítačů. Místo toho nechá úlohu prostě spočítat službou, kterou grid poskytuje. * Zaměření na charakter úlohy - při zadávání úlohy se řeší její systémové nároky, jako je počet vláken, ve kterých má běžet, popřípadě jejich paměťové nároky. * Centrální řízení - je asi nejdůležitějším bodem celého grid computingu. Centrální správa by měla umožňovat především sledování a řízení jednotlivých úloh, ale zároveň by měla podporovat i sledování využití jednotlivých počítačů zapojených v klastru, sledování zátěže sítě, diskových kapacit atd. * Identifikace, registrace a dynamické vytváření výpočetních služeb - opravdový grid by měl umožňovat flexibilně přidávat další uzly klastru za chodu, dělat s nimi rekonfigurační úkony a v rámci zdrojů, které obhospodařuje, by měl umožnit vytvářet virtuální výpočetní služby. * Koordinace zdrojů, které nejsou pod centrální správou - grid by měl umět spolupracovat s jinými gridy, které nejsou pod jeho přímou správou, a popřípadě i s gridy, které jsou od jiných výrobců. Právě tyto vlastnosti se snaží definovat projekty Globus Toolkit a OGSA Open Grid Service Architecture. Požadavky na aplikace a architekturu Podle typu úloh, které bude grid počítat, je třeba uvážit, jaké počítače se budou používat, jaký operační systém na nich poběží, pomocí kterých programů se budou úlohy počítat, jakým modelem se budu distribuovat úlohy a jaké požadavky budou úlohy mít na datové úložiště a I/O. Na základě odpovědí na tyto základní otázky vznikají další požadavky: na dynamickou alokaci pamětí, na zátěž sítě a na dobu potřebnou pro výpočet. Měly by také být k dispozici výkonnostní charakteristiky a referenční benchmarky pro dané typy úloh, aby bylo možno určit budoucí charakter využití výpočetních zdrojů. Při budování gridu nesmíme zapomenout ani na požadavky plynoucí z typu úloh, jako jsou požadavky na počítání závislých úloh a na řízení priorit, což znamená, že některé úlohy mohou být v gridu počítány přednostně. Důležitá je také možnost spravovat výpočetní data a možnost zastavovat a znovu spouštět úlohy (checkpointing). Při budování infrastruktury gridu musíme řešit stejné problémy jako při budování jakékoliv jiné infrastruktury. Musíme zabezpečit tyto požadavky: * Dostupnost - měli bychom vědět, jaký bude mít dopad výpadek celého systému, popřípadě jak ovlivní výpadek jednoho uzlu běh individuální úlohy. Musíme pamatovat i na "okno" pro údržbu. * Škálovatelnost - měli bychom mít připravenou strategii růstu na tři a pět let. Měli bychom znát odpověď, jak se bude systém vyrovnávat s výkonovými maximy. Správa systému - důležité je vědět, jakým způsobem budeme spravovat a konfigurovat jednotlivé části systému i celý systém. * Bezpečnost - z bezpečnostních problémů jsou nejdůležitější otázky týkající se uživatelské autentikace internetového přístupu bezpečnosti dat. * Správa dat - měli bychom znát odpovědi na hardwarové otázky (typy polí a disků a jejich připojení) i na otázky softwarové (volume, souborové systémy). * Použitelnost - nesmíme zapomínat ani na uživatelské rozhraní, které mnohdy hraje nejdůležitější roli v hodnocení použitelnosti celého systému. * Další technické požadavky - mezi ně patří i požadavky na klimatizaci, na přívod elektrické energie, na zabezpečení a prosíťování infrastruktury. Při implementaci je vhodné řídit se osvědčenými praktikami týkajícími se kvality služeb. Je dobré mít model, který definuje úroveň dostupnosti jednotlivých služeb, a mít k dispozici i automatizované metody pro instalaci. Příkladem v Linuxu může být Kickstart, FAI (Fully Automated Install) nebo Systemimager. Nesmíme zapomínat ani na uživatelské rozhraní. V unixovém světě je velmi oblíbeným a mocným nástrojem příkazová řádka. Grafické uživatelské rozhraní je také velmi rozšířené, hlavně ve světě Windows, ale pomocí X Serverů a Java aplikací se dnes stává univerzálním nástrojem pro uživatele. Asi nejmodernějším a také velmi požadovaným je rozhraní webové v mnoha případech gridů lze webová rozhraní zabudovat do stávajících portálů v organizacích. Určitě jednou z nejdůležitějších částí gridových systémů je jejich management. Je nesmírně důležité, aby bylo možné sledovat stav a status jednotlivých úloh. Management by měl také dokázat sledovat úroveň zatížení jednotlivých částí gridu, ať už jde o výkon jednotlivých procesorů či I/O operací na discích i na síti. Management ale neznamená pouze sledování, měl by umožňovat i dynamicky konfigurovat jednotlivé části celého systému. Závěr V samostatné panelu jsou uvedeny softwarové produkty, které řeší některé části problematiky gridů. Nutno však podotknout, že univerzální produkt, který by uměl úplně vše, zatím není. Velmi důležitá je iniciativa GGF (Global Grid Forum) a projekt Globus Toolkit, které se snaží vyvinout otevřený standard, jenž by dovoloval propojování různých gridů a který by umožňoval i snadný a jednotný vývoj aplikací a úloh pro gridové systémy. Projektů se účastní všichni hlavní hráči v této oblasti (Avaki, Cray, Entropia, Fujitsu, Hitachi, HP/Compaq, IBM, Microsoft, NEC, Platform Computing, Qwest, SGI, Sun, Veridian). Možná se tedy v budoucnosti setkáme s gridy, které budou schopné mezi sebou komunikovat a spolupracovat. Tomáš Okrouhlík INFOBOX Produkty komerčních firem Globus Grid (IBM, www-1.ibm.com/grid/) Grid Engine Enterprise Edition (Sun, www.sun.com/grid) (HP, www.hp.com/techservers/grid/ hp_grid_solution.html) Otevřené produkty Beowulf (www.beowulf.org) LSF (http://help.aei-potsdam.mpg.de/ sc/lsf) PBS (www.openpbs.org) Grid Engine (http://gridengine.sunsource.net) Globus Toolkit (www.globus.org) INFOTIPY www.sun.com/software/grid www.grid.com www.globus.org www.globalgridforum.org www.avaki.com www.ibm.com http://rio.jini.org http://mochajava.sun.com/grid www.alphaworks.ibm.com/tech/ GAF4J?open&ca=dgr-gridw04GridGAF http://alphaworks.ibm.com/tech/gridtoolbox