Vědecké výpočty pod lupou

Cluster versus víceprocesorový stroj Jsou-li výpočty na volně propojených dedikovaných serverech (clusterech nebo výp...


Cluster versus víceprocesorový stroj
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í
genetic-kých dat, například 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 je při jejich využití 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í.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.