CESNET

Aplikace

Výpočetní problémy

Jaký typ výpočetních problémů je vlastně řešitelný použitím nově vznikající gridové infrastruktury? Nejjednodušší situace nastává tam, kde uživatelé mají velké množství malých, navzájem nezávislých úloh. Typickým příkladem jsou třeba parametrické studie, kdy se mnohokrát opakuje stejný výpočet, ale s lehce změněnými parametry. Výsledky všech výpočtů se kombinují a použijí pro určení vlivu změny parametru (např. tuhost použitého lepidla) na vlastnosti celého systému. Pro tyto typy výpočtů je Grid optimálním prostředím. Uživatel připraví rozsáhlou dávku - ta může být tvořena i milionem nezávislých úloh - a gridové prostředí se postará o jejich
naplánování, spuštění, sběr výsledků a případně i finální zpracování. Grid se rovněž postará o zhavarované úlohy, které lze v tomto případě automaticky znovu zadat.

Velmi obdobným typem úloh jsou zpracování rozsáhlých datových souborů "po částech". Jednoduchým příkladem může být např. digitální vyhlazení satelitních snímků. Každý snímek může být zpracován samostatně, velké snímky je dokonce možno rozdělit na menší, jednotlivé části rovněž zpracovávat odděleně a výsledek opět spojit do jednoho snímku. Tímto paralelním (současným) zpracováním se dostáváme k nejzajímavější oblasti úloh, pro jejichž řešení byly Gridy vyvinuty.

Touto oblastí jsou obecně rozsáhlé úlohy, jejichž zpracování na jediném procesoru by trvalo neúnosně dlouho, případně jejich celkové paměťové nároky jsou příliš velké. Klasický přístup je řešit tyto úlohy na speciálních - a velmi drahých - paralelních počítačích. Úlohu současně zpracovává velký počet procesorů, které společně mají přístup k velmi rozsáhlé paměti (máme-li jeden tisíc procesorů, každý s jedním GB paměti, dohromady získáme úctyhodný 1 TB vnitřní paměti, využitelný jednou úlohou). Paralelní počítače však v podstatě nejsou nic jiného než množina procesorů a jejich paměti propojená vzájemně velmi rychlou sítí, často se speciálními vlastnostmi. Ovšem na určité úrovni abstrakce je totéž počítačový klastr (skupina počítačů propojena "běžnou", byť stále velmi rychlou sítí a umístěná v malém prostoru) a na ještě vyšší úrovni Grid (vzdálenost mezi počítači je řádově větší než v klastru).

Programování pro paralelní počítače je však velmi těžké, protože úlohu je třeba rozdělit tak, aby každý z procesorů byl zaměstnán a procesory na sebe příliš nečekaly. Rychlost přenosu dat uvnitř paralelního počítače je však velmi vysoká, což umožňuje předávat poměrně často i velké objemy dat mezi procesory bez výrazné ztráty celkového výkonu. Situace v gridovém prostředí je však mnohem složitější. Vzdálenost mezi procesory a použitá síť - vysokorychlostní Internet - vede k mnohem vyšší ceně (tedy době) přenosu dat. Algoritmy a postupy, které fungují na paralelních počítačích, nejsou v gridovém prostředí dostatečně efektivní a musí být nahrazeny jinými, případně některé typy úloh nelze (zatím) efektivně na Gridu řešit.

Základním pojmem při paralelizaci úlohy je granularita problému. Pokud je každý podproblém vysoce závislý na výsledku dalších podproblémů, jedná se o systém s malou granularitou. Jako příklad může posloužit třeba výpočet počasí, který může být rozdělen do mnoha malých výpočtů počasí v malých objemech atmosféry. Každý z těchto výpočtů je ale silně ovlivněn tím, co se děje v sousedních objemech. Ve skutečnosti i změny ve velmi vzdáleném objemu mohou mít velký vliv. Přenos tohoto typu úloh do gridové prostředí je velmi složitý, je nutno vymyslet důmyslné algoritmy minimalizující množství a četnost dat, které si mezi sebou procesory vyměňují.

Na druhé straně spektra granularity stojí výpočty s velkou granularitou, u nichž je každý podproblém nezávislý na ostatních. Jako příklad mohou posloužit Monte Carlo simulace, kde se obměňují parametry komplexního modelu reálného systému a výsledky se studují statistickými technikami - jedná se druh výpočetního experimentu, který je často používán např. ve výpočetní chemii. V takovémto případě může být každý výpočet proveden nezávisle na ostatních. I výše uvedený příklad paralelního zpracování obrazů patří do stejné kategorie.

Výpočty s malou granularitou je zpravidla vhodné řešit na velkých paralelních superpočítačích nebo alespoň velmi "pevně vázaných" (tightly coupled) klastrech s procesory propojenými extrémně rychlou sítí. Tento typ výpočtů se často popisuje jako "high-performance computing".

Na druhé straně výpočty s vysokou granularitou je ideální řešit pomocí sítě "volně vázaných" (loosely coupled) počítačů, jelikož prodlevy při získání výsledků z jednotlivých procesorů neovlivní práci ostatních procesorů. Tento typ výpočtů se často popisuje jako "high-throughput computing".

Gridové prostředí přirozeně preferuje úlohy s vysokou granularitou. Většina zajímavých vědeckých problémů však zpravidla pro řešení potřebuje kombinaci úloh obou typů, jen výjimečně jsou k dispozici homogenní algoritmy s vysokou granularitou. Právě pro tento typ úloh však může být gridové prostředí nejvhodnější, protože poskytuje vhodné výpočetní prostředky pro podúlohy s nízkou granularitou a jejich výsledky lze zpravidla kombinovat formou podúloh s vysokou granularitou.

Jako reálný příklad může posloužit komplexní modelování podnebí Země, při němž je snahou vědců zjistit, jak výpočty závisí na jednotlivých parametrech použitých v jejich modelech. V podstatě tedy potřebují spustit mnoho podobných výpočtů. Každý z nich je paralelní výpočet s malou granularitou, neboť předpověď podnebí je podobná způsobu předpovědi počasí ovšem na mnohem delší časové škále, což nakonec ústí do potřeby spustit každý výpočet na superpočítači nebo jednom klastru. Avšak mnoho v podstatě nezávislých výpočtů může být současně distribuováno na mnoho různých klastrů na Gridu. Celá simulace tak proběhne v mnohem kratším celkovém čase.

Vhodná dekompozice úlohy a následné přiřazení podúloh nejlépe odpovídajícím součástem Gridu je oblastí, která se dnes pomalu posunuje od umění, zvládaného jen malou skupinou zasvěcených, přes řemeslo (příliš mnoho lidské práce) k inženýrské disciplíně, jejíž nástroje jsou dostupné pro stále rostoucí skupinu uživatelů.

Aplikace

Předpokládá se, že velký podíl na využití formující se infrastruktury budou mít v první fázi zejména aplikace z oblasti fyziky elementárních částic (HEP, High Energy Physics), kterou v ČR reprezentuje především Fyzikální ústav Akademie věd. Pro tuto uživatelskou komunitu je grid nezbytným a v podstatě také jediným řešením, jak ukládat a zpracovávat data v řádech PB (10^12) z experimentů částicové fyziky (Atlas, CMS, Alice, LHCb a další). Současně Grid umožňuje spolupracovat ve skutečně celosvětovém měřítku - ostatně světový web má rovněž svůj počátek v CERNu, centru výzkumu HEP.

Jedním z klíčových cílů projektu EGEE je současně rozšíření uživatelské základny přes co největší počet potenciálně vhodných aplikací. Portfolio problémů řešitelných pomocí výkonných gridových systémů je poměrně široké, nasazení v gridovém prostředí však většinou brání nedostatečná připravenost na obou stranách, jak odborníků na Gridy, tak i vlastních uživatelů. Vezmeme-li v úvahu výše popsané typy výpočetních problémů, charakteristické nasazení zahrnuje náročné výpočetně-chemické simulace biologicky důležitých systémů, zpracování bioinfomatických či lékařských dat, materiálově orientované výpočty a testy, rostoucí zájem je z oblasti monitorování a zpracování dat z dálkového průzkumu země, zpracování a distribuce dat z astronomických měření a experimentů částicové fyziky a zejména v poslední době se přidává real-time zpracování videa a obrazu. Veškeré aplikace využívající infrastrukturu EGEE by měly spadat do jedné ze tří kategorií.

"Pilotní" aplikace, sloužící pro prvotní testování implementace programového vybavení EGEE a ověření funkčnosti a výkonu gridového prostředí. V první fázi řešení projektu byl první pilotní aplikací výpočetní grid pro velký hadronový urychlovač částic (LCG, Large Hadron Collider Computational Grid) sloužící jako model pro prostředí umožňující zpracování dat v řádech petabytů z experimentů částicové fyziky v CERNu. Druhou pilotní aplikací tvoří biomedicínské gridy, neboť řada lékařských komunit je vystavena rostoucím výpočetním výzvám jako je dolování dat z genomických databází nebo indexování lékařských databází v nemocnicích, jejichž datový obsah dosahuje mnoha terabytů dat pro jednu nemocnici ročně.

Dalším typem aplikací jsou tzv. "interní" obsahující projekty, jejichž řešitelé se podílí na projektu EGEE a současně spolupracují s institucemi mimo EGEE. V praxi se většinou jedná o národní projekty s nemalou zkušeností v oblasti gridových výpočtů.

Posledním typem jsou aplikace "externí", vyžadující explicitní podporu vybraných uživatelských skupin tak, aby jejich aplikace byly přeneseny do gridového prostředí, které EGEE buduje, a současně aby uživatelé získali dostatečné znalosti pro jejich efektivní využití. Součástí projektu je proto i rozsáhlá školící aktivita, včetně seminářů a kurzů, zaměřených na různé skupiny uživatelů.