Vědecké výpočty pod lupou: Cluster versus víceprocesorový stroj

Biologie |

Jsou-li výpočty na volně propojených dedikovaných serverech (clusterech nebo výpočetních farmách) tak atraktivním řešením, proč firmy zabývající se vědeckým výzkumem pořád utrácejí nehorázné peníze za víceprocesorové stroje připomínající ledničky?




Jsou-li výpočty na volně propojených dedikovaných serverech (clusterech nebo výpočetních farmách) tak atraktivním řešením, proč firmy zabývající se vědeckým výzkumem pořád utrácejí nehorázné peníze za víceprocesorové stroje připomínající ledničky?
Hlavní klad clusterových výpočtů představuje nízká pořizovací cena: Podle některých odhadů je 4krát až 50krát nižší než ekvivalentní procesorová a ukládací kapacita víceprocesorových monster. Skutečná přednost clusterů spočívá pak v jejich škálovatelnosti. – možnosti škálování pochopitelně závisejí na správné volbě hardwaru a síťové architektury, ale tomu se v tomto článku věnovat nebudeme.
Další důležitou výhodou clusterových systémů je jejich snadná správa. Správně nakonfigurovaný cluster se 100 uzly vyžaduje při správě zhruba stejné úsilí jako jedna víceprocesorová lednička. Postavit špatný cluster už dnes také není tak snadné, jak tomu bývalo dříve. Unixové operační systémy (např. Linux a OS X) byly od počátku tvořeny s ohledem na clusterové aplikace. Také robustnost softwaru pro správu distribuovaných výpočtů – jako je Sun Grid Engine nebo Platform LSF – se rychle zlepšuje. Lze říci, že tento software se pomalu stává běžnou komoditou a může (a měl by) být považován za součást operačního systému.

Výzvy a překážky

Skutečně efektivní využití nakonfigurovaného clusteru představuje výzvu. Nejsmutnější pohled v datovém centru se vám naskytne, pokud vidíte pěkně vyladěný cluster, spotřebovávající megawatty elektřiny a využívající tuny chlazení, jehož hlavní náplní práce je – nic. Nečinné clustery by měly být informatickým zločinem, za který by hrozilo trestní stíhání. Částečnou příčinou tohoto stavu je samozřejmě široká propast, která často dělí vědce a pracovníky IT oddělení.
Kromě firemní politiky je nejpalčivějším problémem při efektivním využití clusterů podpora aplikací. Otázka zní, jakým způsobem mohou konkrétní aplikace a datové přenosy využít výhod neohraničených, škálovatelných clusterových výpočetních infrastruktur.

Tok výpočtu

Podpora clusterových výpočtů vyžaduje pochopení základního toku provádění výpočtů v dané aplikaci. Do paralelního, distribuovaného prostředí často dobře zapadají dva druhy aplikací: zpracování proudu dat a algoritmy pro vyhledávání parametrů. Do první skupiny spadá mnoho aplikací pro analýzu sekvencí genetických dat, např. prohledávání databází amerického National Center for Biotechnology Information (nejpoužívanější je v tomto ohledu tzv. NCBI Blast, podrobnosti viz http://www.ncbi.nlm.nih.gov/BLAST/).
V podobných případech proudí data z referenčního zdroje jediným klíčovým algoritmem, kde jsou porovnávána a analyzována. Neparalelizovatelná komponenta toku výpočtů sestavuje a zpracovává konečné výsledky.
Jiným příkladem algoritmu pro vyhledávání parametrů je modelování systému. V těchto případech je standardně vektor modelových parametrů vylepšován za účelem optimalizace odezvy modelu. Jednotlivé kalkulace modelů lze opět provádět paralelně.

Transformace aplikací

Ke skutečnému využití clusterových výpočtů se informatici musejí naučit rozložit komplexní, monolitické problémy na zvládnutelné, jasně definované součásti. Například namísto nahrání celé databáze GenBank do jediné hašovací určené dále pro sekvenční zpracování by mohlo být rozumnější strukturovat implementaci pro zpracování analýzy jediné sekvence. Tímto způsobem by pak bylo možné paralelně analyzovat velké množství sekvencí.
Pro transformaci monolitických nevláknových aplikací na distribuované řešení existuje nespočet pomůcek a technik, včetně low-level nástrojů jako je MPI (message passing interface) a PVM (parallel virtual machine). Tyto nástroje však bohužel mohou také proměnit aplikaci v bažinu komplexního, nezvladatelného a dále neportovatelného kódu, takže při jejich využití je na místě obezřetnost. Velmi často lze alespoň oddělit paralelní a neparalelní komponenty takovým způsobem, aby systém pro správu zatížení mohl vykonávat provádění transparentně, stejně jako je tomu na víceprocesorovém počítači.
Zrezivělá víceprocesorová monstra však ještě nepatří do šrotu. Infrastruktury pro clusterové výpočty dosud nejsou schopny vyřešit všechny problémy vědeckých výpočtů, i víceprocesorovým serverům mohou od určitého druhu výpočtů odlehčit. Dodatečné úsilí při vývoji aplikací dovolujících clusterové výpočty se rychle vyplatí.

Tento článek vyšel v Computerworldu 13/2004.








Související články




Komentáře

Napsat vlastní komentář

Pro přidání příspěvku do diskuze se prosím přihlašte v pravém horním rohu, nebo se prosím nejprve registrujte.