Author: Milan Schwarz Title: Sun Grid Engine (SGE)
Výběr informačních prostředků a technologií ©
Sun Grid Engine (SGE)
Brno, 29. března 2006
-1-
Author: Milan Schwarz Title: Sun Grid Engine (SGE)
Grid Rozložení databází a výpočtů na různé počítače je už po desetiletí zcela běžné, v posledních letech se realizuje prostřednictvím tzv. gridů . Dříve než podám stručný referát o "Sun Grid Engine", dovolím si stručnou rekapitulaci obecných aktuálních faktů: •
•
•
•
•
Obecně se sice pod pojem grid zahrnuje sdílení intelektuálního potenciálu, výpočetních kapacit a databází, prakticky se však zatím vyskytují jen datové gridy a výpočetní gridy . Datové gridy se uplatňují tam, kde rozptýlení odborníci potřebují přístup k velmi rozsáhlé databázi. Ta může být lokalizována na jednom místě nebo může být distribuovaná, ale každá položka má jen jeden výskyt (neuvažujeme-li zrcadlení z praktických či bezpečnostních, nikoli principiálních důvodů). Obrovské databáze, které se v některých oborech začínají vytvářet během posledních let, by bez využití datového gridu téměř nemohly efektivně existovat (např. genetický výzkum, klimatologie, farmakologie nebo zpracování experimentálních výsledků ve fyzice elementárních částic). V těchto aplikacích jsou datové gridy běžně rozptýleny i na několika kontinentech. Avšak také ve velké průmyslové nebo finanční organizaci, která přitom nemusí být rozptýlena na velkém území, je společná sdílená databáze mnohem efektivnější než distribuování dat mezi uživatele a jejich neustálé aktualizování. Současný stav výpočetních gridů není zdaleka tak jednoznačný, protože problematika je řádově složitější a organizačně náročnější. Problémy nejsou velké, jestliže se grid vytváří na půdě jedné instituce, zvláště tehdy, když je výpočetní technika homogenní (alespoň na úrovni operačního systému a některých dalších základních softwarových nástrojů). V takovém prostředí je grid skvělým nástrojem pro lepší využití zahálejícího hardware. V podstatě byly gridy budovány už aspoň 20 let, tedy dávno před tím, než se objevil tento pojem (jedním z prvních takových distribuovaných výpočetních "svazků" byl i u nás dobře známý Condor Mirona Livnyho z univerzity ve Wisconsinu). Implementace gridů, zvl. výpočetních, se často třídí podle jejich velikosti a rozsahu. Nejmenší (ale výrazně nejrozšířenější) jsou takové, které využívají servery malé jednotky v organizaci (oddělení) - proto se jim anglicky říká departmental . Neliší se v podstatě od klastrů - proto se také někdy nazývají klastrové ; to je i příklad klastru, který byl na výstavě při SC 2003 instalován ve spolupráci Sun Microsystems a SDSC . Větší gridy vzniknou, jestliže se spojí více těchto klastrových gridů - většinou na půdě jedné organizace, podniku, proto se v angličtině označují enterprise grids . Když rozsah gridu přesáhne půdu jedné organizace, využívá se Internet a takový grid se nazývá globální . Řídicí program výpočetního gridu (např. právě Sun Grid Engine, k kterém budeme mluvit později) přináší uživatelům řadu výhod, především usnadnění přístupu na více počítačů (odpadá opakování autentizace apod.). Výhodný je i pro provozovatele těchto počítačů, protože může zajistit jejich lepší využití bez nárůstu administrátorské práce. Proto se řídicí program někdy instaluje i na klastrech tvořených homogenní soupravou uzlů, které jsou v podstatě těsně u sebe. V tomto případě by ovšem stačil nějaký vhodný software pro administraci klastru. Výpočetní grid vytvořený z heterogenní soupravy -2-
Author: Milan Schwarz Title: Sun Grid Engine (SGE)
•
výpočetních systémů není už zdaleka tak běžný, protože řídicí programy musí být schopny spolupracovat se všemi podřízenými operačními systémy (např. SGE může řídit grid zatím jen s operačními systémy Solaris a Linux ). Výpočetní gridy se už provozují v mnoha organizacích, je však podstatně méně globálních výpočetních gridů. Pokud by se měl grid vytvořit z výpočetních uzlů, které jsou majetkem různých organizací, musí se řešit finanční vyrovnání, priority uživatelů, zajištění bezpečnosti a důvěrnosti dat jednotlivých účastníků a mnoho dalších problémů. Proto se rozsáhlejší výpočetní gridy rozšiřují především ve státních a univerzitních organizacích, ale ani tam to není jednoduché. V některých státech, např. ve Francii nebo ve vlámské části Belgie se iniciativy chopily vládní instituce, které se finančními injekcemi a organizačními opatřeními snaží přispět k budování počítačové infrastruktury - většinou na bázi gridu.
I když přední dodavatelé výpočetních systémů mají řídicí programy, které by se sice mohly bezpečně instalovat na "podnikový" grid, ale přesto jsou mnohem častější jen na klastrech v rámci oddělení. Myslí se tím hlavně výpočetní gridy; zatímco datové gridy se v oblasti distribuovaných databází již definitivně ujaly, výpočetní gridy potřebují ještě značné zdokonalení. Ačkoli je teoretický výkon počítačů zapojených do globálních gridů většinou obrovský, nelze grid srovnávat se superpočítačem vzhledem k velké latenci, těžkostem vyplývajícím z heterogenity procesorů v gridu a mnoha organizačním problémům. Jejich řešení vyžaduje spolupráci výrobců hardware i software a bude trvat ještě dlouho. Přesto jsou výpočetní gridy asi správnou cestou k úsporám v hardware, software (sdílení drahých licencí apod.) a managementu počítačů na úrovni podniku (některé rutinní operace vykonává řídicí program gridu místo správců).
Sun Grid Engine (SGE) Sun Grid Engine vznikl z produktu Codine dřívější nezávislé regensburské společnosti Genias , která se před několika lety stala součástí firmy Sun Microsystems. Na ovládaných počítačích mohou být provozovány různé verze operačních systémů Solaris nebo Linux. SGE je nástroj pro správu dávkového zpracování úloh. Pomocí něj se uživatel může přestat dívat na výpočetní prostředky jako na jednotlivé počítače, ale místo toho používá jeden (nebo více) virtuálních výpočetních zdrojů a po spuštění výpočetního úlohy, SGE rozvrhne jejich spuštění na vhodných systémech na základě vnitřní řídící politiky. Uživatelé mohou najednou spustit doslova tisíce úloh bez jakýchkoliv starostí, kde se provádějí. Žádné dva Gridy nejsou stejné-každý je vhodný pro jinou situaci. Existují tři klíčové skupiny Gridů, které jsou děleny od jednoduchých systému po superpočítače obsahující tisíce procesorů. SGE řadíme do skupiny Klastrové výpočetní sítě (anglicky cluster grids), které jsou nejjednodušší. Skládají se z jednoho nebo více vzájemně spolupracujících systémů zajišťujících jeden přístupový bod pro uživatele pracující na jednom projektu nebo v jednom oddělení. SGE software poskytuje uživateli prostředky pro spuštění požadované výpočetní úlohy do Sun Grid Engine systému pro transparentní rozmisťování výpočetních úkonů. Uživatel může najednou spustit více úloh, které mohou běžet i paralelně. SGE poskytuje také na vše
-3-
Author: Milan Schwarz Title: Sun Grid Engine (SGE) dohlížející program. Proto se jednotlivé části úlohy mohou přemístit z jedné pracovní na jinou bez nutného zásahu uživatele. Pro administrátory tento software poskytuje kompletní nástroje pro monitorování všech úloh uvnitř SGE.
Jak systém pracuje SGE systém přijímá uživatelské žádosti na výpočetní zdroje, vloží je a ‚drží‘ v jisté oblasti, dokud nemohou být spuštěny. Po té je pošle do spouštějícího zařízení, řídí je při běhu dané úlohy a ukládá výsledné údaje. Jako analogie si představte obrovské peněžní centrum(banku). V bankovní hale jsou tucty lidí, každý s rozdílnými požadavky, čekající na obsloužení. Nějaký zákazník chce jenom vybrat malou částku peněz z jeho účtu. Za ním stojí jiný zákazník, který má schůzku s bankovním investičním specialistou. Tento zákazník potřebuje nejdříve radu před přijmutím odvážného závázku. Před oběma z nich v dlouhé řadě je další zákazník, který zamýšlí si vzít obrovskou půjčku jako dalších 8 zákazníků před nimi. Různí zákazníci a různé záměry vyžadují různé typy a stupně bankovních zdrojů. Možná tento den má banka spoustu zaměstnanců, kteří mají dostačující časové schoponosti pro zákazníky vybírající si malou častku z účtu, ale možna jen pár zaměstnanců pro zákazníky žádající o půjčku. Výsledkem samozřejmě bude, že zákazníci musí čekat na obsloužení-dokonce i když spousta z nich může být obsloužena okamžitě, když jejich požadavky budou okamžitě rozeznatelné a odpovídat zdrojům, které jsou k dispozici. Pokud bude Sun Grid Engine systém bankovní manažer, organizoval by obsluhu následovně: • Při vstupu do bankovní haly budou zákazníci žádány o jejich jméno, členství(např. reprezentující nějakou firmu) a jejich požadavky • Bude zaznamenán čas příchodu každého zákazníka • Na základě informací, které každý zákazník poskytl ve vstupní hale, bude vyhověno těm, kteří mají vhodné požadavky a okamžitě dostupné zdroje, těm, kteří mají největší prioritu pro odbavení a těm, kteří čekají nejdéle v odbavovací hale. • Samozřejmě v této bance bude umožněno, že jeden zaměstnanec bude schopen poskytnout pomoc více zákazníkům v jeden moment. SGE se pokusí přidělit novým zákazníkům nejméně zatížené a nejvíce vhodné bankovní zaměstnance.
Úlohy a Fronty V systému SGE odpovídají úlohy zákazníkům banky, kteří čekají v holding area namísto odbavovací haly, a fronty tvořené na počítačových serverech zastupují bankovní zaměstnance poskytující služby pro úlohy. Požadavky každé úlohy (typicky využitelná paměť, rychlost provedení, softwarové license a podobné potřeby), můžou být velice rozdílné a pouze zaručená fronta může být schopná poskytnout odpovídající službu. Ve shodě s naší analogií, Sun Grid Engine software rozhoduje o vhodných zdrojích a požadavků úloh následujícím způsobem: • Uživatel, který chce spustit úlohu pomocí SGE, napíše pro tuto úlohu profil požadavků. Navíc je požadována identita uživatele a uživatelská skupina nebo vztah s projektem. Je zaznamenán také čas potvrzení o předání úlohy SGE. • V momentě, kdy se fronta stane přípustná pro spuštění nové úlohy, SGE systém určí vhodné úlohy pro tuto frontu a okamžitě odešle úlohu s největší prioritou anebo s nejdelší čekací dobou. • SGE fronty umožňují souběžné spuštění více úloh.
-4-
Author: Milan Schwarz Title: Sun Grid Engine (SGE)
Použití SGE Při použití SGE jsou k dispozici jak řádkové příkazy, jejichž základ je popsán v článku, tak také grafické uživatelské rozhraní, jež bych vám teď rád představil: 1. GUI se spouští pomocí příkazu qmon. Uvítá vás základní obrazovka, z které se poté otevírají další okna pro jednotlivé úlohy: Nejprve projdeme části, které slouží pro uživatele systému, posléze uvidíme jaké možnosti nabízí část pro administrátory. 2. Pod ikonou „Job Control“ se skrývá okno pro sledování aktuálního stavu úloh v systému. Odpovídá nástroji qstat. Stav procesů je rozdělen do skupin čekající (pending), běžící (running) a hotové (finished). V každé ze záložek jsou informace o ID úlohy, jejím jménu a majiteli, stavu a případně frontě ve které se nachází. Na pravé straně je menu pro manipulaci s úlohami (pozastavení, zrušení, změna nastavení – Qalter a případně zadání nové úlohy –Submit. 3.
Ikona „Queue Control“ zobrazí přehled dostupných front a informace o jejich stavu. Je to tedy opět duální nástroj ke qstat. Pod každou frontou vidíme počet volných a dostupných slotů její stav. Tak jako úlohy lze i fronty pozastavovat („Suspend“, „Resume“, „Enable“, „Disable“) či měnit jejich parametry („Modify“) a fronty přidávat a mazat („Delete“, „Add“).
4.
Stejné okno jako při použití tlačítka Submit v okně „Job Control“ se nám otevře samostatně zde. Okno je GUI pro příkaz qsub. Povinnou položkou je název a umístění skriptu s úlohou. Dále jsou k dispozici položky pro většinu parametrů qsub. Nejpoužívanější jsou jméno úlohy, a v záložce „Advanced“ potom zaslání mailu po skončení úlohy –„Mail to“ a „End of job“. Pro omezení použitých uzlů slouží „Hard/Soft Queue List“.
Nástroje pro administrátora jsou ukryté v následujících oknech. Jedná se o GUI pro příkaz qconf: 1.
Konfigurace rolí jednotlivých uzlů. Zde je možné zhlédnout i modifikovat seznam „Administration“, „Submit“ a „Exec“ uzlů. Administrátorské jsou takové, které ze kterých je možno měnit konfiguraci jednotlivých front i celého klastru (samozřejmě jen oprávněný uživatel). „Submit“ stanice mají právo zadávat úlohy do systému a nakonec „Exec“ jsou stanice, které obsahují frontu úloh a provádějí vlastní užitečné výpočty. U výpočetních stanic se zároveň na tomto místě provádí jejich základní konfigurace („Modify“) - uživatelé, nastavení relativního výkonu stanice.
2.
Nastavení plánovače („Scheduler Configuration“) obsahuje několik důležitých položek pro zdárný chod systému. Jednak je možné určit, jak často se budou vyhodnocovat informace pro plánovač (Schedule Interval“), maximální počet úloh na jednoho uživatele („Max Jobs/User“), způsob řazení front („Sort by sequence number“) a pravidelné střídání uživatelů („Sort User“). Při nastavení podle obrázku 6 se plánovač chová tak že střídavě vybírá úlohy o jednotlivých uživatelů (ve stejné prioritě) a pouští je na nejlepší volné frontě (s maximálním sequence number – vlastnost fronty nastavitelná v „Queue Control“.
-5-
Author: Milan Schwarz Title: Sun Grid Engine (SGE) 3.
Globální nastavení obsahuje takové věci jako cesty k jednotlivým komponentám SGE a dalších potřebných nástrojů (mail, ssh), nastavení administrátorského účtu a e-mailu další. Část zdejších hodnot se sama nakonfiguruje již při instalaci SGE.
4.
Kalendáře jsou jedna z pokročilejších vlastností, které SGE nabízí. Umožňují definovat úseky, kdy jsou fronty automaticky zakázány („Disabled“). Jednotlivé kalendáře je pak možno přiřadit k frontám v „Queue Control -> Modify“. Lze tak například docílit jednoduše stavu, že v učebně se počítače nepoužívají v době výuky, ale pokud zůstanou zapnuté přes noc, tak je systém může využít.
-6-