Jak síťový výpočetní systém mění různorodé stroje v superpočítač

11

Výzkumník potřebuje simulovat skládání proteinů. Přihlašuje se přes terminál, takže nepoužívá jen jeden počítač, ale připojuje se k rozsáhlé síti, která rozděluje zátěž. Obchodník musí předvídat pohyb akcií. Otevírá data na kapesním PDA pomocí výpočetního výkonu backend infrastruktury své společnosti. Vojenský velitel musí koordinovat úder. Namísto spoléhání se na jediný serverový komplex přistupuje k formulování strategie ke zdrojům tří různých, izolovaných vojenských sítí.

Tyto scénáře zní jako sci-fi nebo korporátní utopie, ale všechny ukazují na stejnou základní architekturu: grid computing.

Jedná se o digitální ekvivalent sdružování zdrojů. V síťovém počítání se nezabýváte pouze výkonem svého vlastního počítače. Získáte přístup k výpočetním jádrům, paměti a úložišti každého autorizovaného stroje v systému. Jedná se o distribuované výpočty na steroidech. Cíl? Zajistěte, aby síť nesourodých počítačů fungovala jako jeden obrovský, jednotný superpočítač.

Mýtus jednoho počítače

Historicky, pokud jste potřebovali více energie, koupili jste si rychlejší počítač. Přidali jste více RAM. Nainstalovali jste větší pevný disk. Existoval limit toho, co mohl jeden počítač dělat, bez ohledu na to, kolik peněz jste do něj vrazili. Síťové výpočty tento limit porušují.

Představte si túru. Cestujete sám. Máte jeden stan. Tvůj přítel to má jinak. Jeden přináší jídlo, druhý SUV. Pokud cestujete sami, musíte si vše nést sami. Jste omezeni vlastní silou a vlastním vybavením. Pokud cestujete společně, sdílíte náklad. Vzájemně využíváte své dovednosti. Cestování se stává jednodušší, rychlejší a efektivnější, protože nikdo nenese celou zátěž sám.

Síťové výpočty aplikují tuto logiku na data.

Standardní počítač se spoléhá na svou centrální procesorovou jednotku (CPU). Tento mikroprocesor zpracovává čísla a spravuje data. Spoléhá se také na paměť (RAM), což je dočasné vysokorychlostní úložiště umístěné v blízkosti CPU, a úložiště (pevné disky nebo databáze), které jsou trvalé, ale pomalejší. Ve výchozím nastavení je uživatel omezen limity vlastního hardwaru.

V síťovém počítání tyto limity mizí. Systém tyto zdroje propojuje. Když zadáte požadavek, síť používá více než jen váš CPU. Distribuuje části úkolu tisícům dalších strojů v síti. Uživateli to připadá jako kouzlo. Získáte přístup ke kolektivní síle celé sítě, nejen křemíku před vámi.

Není to nové, ale ještě to není hotové

Sečteno a podtrženo: výpočetní technika v síti není nová myšlenka. Jedná se o specifický typ distribuovaného počítání. Distribuovaná výpočetní technika existuje již desítky let a různé počítače sdílejí zdroje prostřednictvím sítě. Skutečná síťová práce však jde ještě dále. V ideálním stavu je sdílen každý zdroj. Každý cyklus procesoru a každý bajt úložiště se stává majetkem komunity.

Přístup k nim by měl být bezproblémový. Rozhraní by nemělo vypadat, jako byste se nabourali do sálového počítače. Mělo by to vypadat, jako byste pracovali na své vlastní ploše. Rozdíl spočívá v neviditelné síle v zákulisí.

Technologie má však k dokonalosti ještě daleko. Stále jsme v těžkém přechodném období. Počítačoví vědci a inženýři se v současné době potýkají se standardy a protokoly. Právě teď se mnoho síťových systémů spoléhá na proprietární software. Jsou izolovaní. Chcete-li se připojit k síti, často potřebujete nástroje specifické pro dodavatele. Dokud se průmysl neshodne na univerzálním souboru pravidel, bude implementace nepohodlná. Organizace váhají investovat do infrastruktury, která nemusí být kompatibilní s ostatními.

Past žargonu

Pokud se ponoříte do dokumentace síťového počítače, utopíte se ve zkratkách. Tato oblast si hodně půjčuje od jiných technologických sektorů. Abyste pochopili, jak to funguje, musíte oddělit podstatu od hluku.

Síťové výpočty souvisí s několika dalšími modely a hranice mezi nimi jsou často rozmazané:

  • Shared Computing: Toto je široká kategorie. Týká se jakékoli skupiny počítačů, které sdílejí výpočetní výkon za účelem provedení úkolu. Toto je poměrně obecný pojem.
  • Utility Computing: Často poskytované prostřednictvím softwaru jako služby (SaaS). Představte si elektřinu. Nestavíte elektrárnu; připojíte se k síti a platíte za to, co používáte. Společnosti nabízejí úložiště nebo výpočetní výkon na základě spotřeby.
  • Cloud Computing: Toto je dnes nejznámější pojem. V cloud computingu žijí aplikace a úložiště na internetu. Nejste vlastníkem zařízení; pronajímáte si k němu přístup. Přestože cloud a network computing mají společné kořeny, network computing se více zaměřuje na sdružování nečinných zdrojů pro rozsáhlé výpočetní úlohy, zatímco cloud computing se často zaměřuje na poskytování služeb přes internet.

Abyste se v těchto pojmech orientovali, musíte znát slovní zásobu. Zde jsou základní informace:

  • Cluster: Skupina síťových počítačů sdílejících zdroje. Pracují společně jako jeden.
  • Uzel: Jakékoli zařízení v síti, které může odesílat, přijímat nebo předávat data. Řídicí uzly řídí tok.
  • XML (Extensible Markup Language): Značkovací jazyk, který popisuje data. Je čitelný jak pro lidi, tak pro stroje. Řídicí uzly používají deriváty XML, jako je WSDL (Web Services Description Language), aby pochopily, jak zacházet se specifickými aplikacemi a datovými typy.
  • Hub: Centrální bod v síti, kde se připojuje více zařízení.
  • IDE (Integrated Development Environment): Sada nástrojů, které programátoři používají k vytváření aplikací.
  • Sandbox: Izolované prostředí používané k testování aplikací bez ohrožení hlavního systému.

Technologie funguje. Koncept je oprávněný. Největší překážkou však zůstává roztříštěnost norem. Dokud nebude „instalace“ síťových počítačů standardizována, budeme nadále vídat spíše izolované ostrovy síly než skutečně jednotný globální superpočítač.

Technická terminologie

Abyste rozuměli grid computingu, musíte mluvit daným jazykem. Nejsou to jen módní slova; je to mechanika toho, jak různé stroje spolu komunikují.

Interoperabilita (kompatibilita) je základem. Bez něj zůstanou vaše PC a Macintosh izolované ostrovy. Mají různé operační systémy, různé architektury. Nemohou spolupracovat, pokud software nepřeklene tuto mezeru.

Pak jsou tu otevřené standardy. Proprietární standardy vás uzamknou do ekosystému jediného dodavatele. Otevřené standardy jsou veřejné. Každý si je může vzít. Díky tomu je integrace mnohem snazší, protože všichni hrají podle stejných pravidel.

Mluvíme také o paralelním zpracování. Není to jen multitasking na jednom čipu. Jedná se o použití více procesorů k vyřešení jednoho výpočetního problému. To úzce souvisí s distribuovaným počítáním, které ke své práci využívá nevyužité síťové zdroje.

Platforma je jen rámec. Může to být operační systém, architektura, programovací jazyk nebo dokonce webová stránka. Vývojáři na tom staví své produkty.

Když jeden server nestačí, potřebujete serverový cluster (serverovou farmu). Skupina serverů spolupracujících na úkolech, které jsou příliš složité pro jeden počítač.

Nákup dalšího vybavení je ale drahý. Na scénu přichází virtualizace serverů. Tato metoda využívá software k rozdělení jednoho fyzického serveru na více izolovaných virtuálních platforem. Každý virtuální server provozuje svůj vlastní operační systém nezávisle. Jeden stroj může současně hostit server Linux a server Windows. To je možné, protože většina serverů je většinu času nečinná. Virtualizace snižuje náklady na hardware pro gridové systémy, které vyžadují desítky uzlů.

V tomto prostředí je služba (služba) jakýkoli softwarový systém, který umožňuje počítačům komunikovat přes síť.

Komunikace často závisí na SOAP (Simple Object Access Protocol). Sada pravidel pro výměnu zpráv XML přes síť. Byl vyvinut společností Microsoft. Toto je syntaxe konverzace.

Správa dat nás přivádí ke konceptu stavu (stavu). V IT jsou stavem jakákoli trvalá data. Přetrvávají po celou dobu životního cyklu aplikace. Když do košíku Amazon přidáte knihy, jedná se o stavová data. Amazon sleduje váš výběr při procházení katalogu. Stavové služby vám umožňují vytvářet vícekrokové aplikace, které se spoléhají na konzistentní kmenová data.

A nakonec přechodné (dočasnost). Schopnost zapnout nebo vypnout službu v síti bez narušení celého provozu.

Sdílení zdrojů

Jak se tedy tyto prvky spojují?

Několik organizací soutěží o vytvoření standardizovaných protokolů. Cíl? Připravte prostředí grid computingu k použití ihned po vybalení (plug-and-play).

Síťové systémy již dnes existují. Ale kompatibilita je často nestabilní. Proč? Protože každý systém často používá jedinečnou sadu protokolů a nástrojů. Dva mřížkové systémy si nemusí rozumět. Nedostatek dohody je překážkou.

Funkční gridový výpočetní systém obvykle vyžaduje tři věci:

  1. Kontrolní uzel. Obvykle se jedná o server, který provádí administrativní funkce. Tohle je dispečer.
  2. Síť. Počítače se speciálním gridovým softwarem. Fungují jako uživatelská rozhraní a fondy zdrojů. Síť může být homogenní (stejný OS, stejný hardware) nebo heterogenní (směs všeho). Může být kabelový nebo přes otevřený internet.
  3. Middleware (Middleware). Pracovní kůň. Software, který umožňuje různým počítačům provádět proces přes síť. Bez middlewaru je komunikace nemožná. Neexistuje jediný formát pro middleware, což problém fragmentace zhoršuje.

Řídicí uzel je zaneprázdněn. Upřednostňuje úkoly. Plánuje pracovat na síti. Rozhoduje o tom, jaké zdroje každý úkol obdrží. Řídí přetížení. Je důležité, aby zajistilo, že nedojde ke zpomalení místního počítače uživatele. Síť by měla využívat nevyužité zdroje. Pokud se váš počítač zpomalí, když je mřížka spuštěna, systém se zhroutí.

Problém standardizace

Potenciál je neomezený. Ale pouze v případě, že se všichni shodnou na protokolech a nástrojích.

Bez standardního formátu se vývojáři třetích stran zasekli. Nezávislí programátoři chtějí stavět aplikace na gridu, ale nemohou zaručit kompatibilitu. Možná budou muset vytvořit různé verze stejné aplikace pro různé systémy. Zabere to spoustu času. Vývojáři nechtějí dělat stejnou práci dvakrát.

Standardizovaná sada protokolů by vývojářům umožnila soustředit se na jeden formát. Jedna základna kódu. Jeden mřížkový systém.

Do té doby jsme uvízli v členité krajině. Výkonný, ano. Ale chaotický.

To nás přivádí zpět k otázce: pokud je tam hardware a je tam software, proč není každá síť grid?

Paradox zabezpečení distribuovaného napájení

Sloučení různých strojů do jediné výpočetní struktury zní jako utopické řešení zpracování dat. Ale to není pravda. Je to logistická bolest hlavy zabalená do bezpečnostních rizik. Když propojíte dva počítače, natož tisíce, nevyhnutelně se potýkáte s otázkami ochrany soukromí, řízení přístupu a únosů zdrojů.

Middleware je odpověď, nebo alespoň současné řešení. Samotné síťové výpočetní protokoly tyto problémy nevyřeší; jen usnadňují vývojářům vytvářet nástroje, které to dělají. Hlavní problém? Šifrování.

Většina inženýrů se při ochraně dat spoléhá na šifrování. Zakódujete informace tak, aby je mohli číst pouze ti, kteří mají klíč. Rozbití takového kódu obvykle vyžaduje započítání obrovských čísel do prvočísel, což je úkol, který by typickému superpočítači trvalo roky. Ale je tu ta ironie: síťový výpočetní systém lze použít jako zbraň k prolomení právě těchto kódů. Pokud zkombinujete dostatek nečinných procesorů, čas potřebný k prolomení silného šifrování se zkrátí z let na dny.

“Hacker by teoreticky mohl vytvořit síťový výpočetní systém za účelem prolomení šifrovaných informací.”

Proprietární software může nabídnout malou ochranu, ale otevřené standardy potřebné pro fungování síťového počítače nechávají dveře dokořán otevřené. Každý uzel vyžaduje specifický software pro komunikaci se zbytkem sítě. Pokud je v tomto softwaru chyba zabezpečení, trpí tím celá síť.

Pak je tu otázka přístupu. Nemůžete nechat každého, ať si dělá, co chce. Pokud uživatel převezme všechny prostředky, dojde k zablokování. Řídicí uzel zamrzne. Nic se nestane. Proto se autorizační a autentizační protokoly stávají povinnými. Plný přístup k síti získají pouze vybraní uživatelé. Odpočinek? Dostanou svůj počítač zpět, bez dodatečného výpočetního výkonu.

Kdo se stará o displej?

Middleware a uzel správy fungují jako strážci sítě. Řídí datové toky. Zajišťují, že v síti nebude dominovat žádný počítač a naopak, aby síť nevyčerpala osobní počítač uživatele do poslední kapky procesorového času. Pokud systém odebere vaše vlastní výpočetní zdroje, je neúčinný. Je to nepřátelské.

Od sci-fi k laboratorní lavici

Kam tedy tato síla vlastně jde? Ne vaše videohry. Ne vaše tabulky.

Většina dnes fungujících síťových počítačů pochází z akademické sféry a výzkumných institucí. Technicky jde spíše o „systémy sdílení počítačů“ než o skutečné trvalé podnikové sítě. Používají nečinné cykly CPU. A dělají tu těžkou práci.

SETI@home: Poslouchání prázdnoty

Projekt Search for Extraterrestrial Intelligence (SETI) vynesl do popředí síťové počítačové systémy. Radioteleskopy shromažďují terabajty kosmického šumu. Jeden počítač nemůže najít jehlu v kupce sena takových dat. SETI@home vytvořil program, který promění miliony domácích počítačů ve virtuální superpočítač. Nainstaluješ to. Funguje na pozadí. Analyzuje data pro mimozemské signály. Pokud chcete hrát Call of Duty, program je podřadný. Po odhlášení se systém obnoví.

Folding@home: Řešení proteinové hádanky

Pak je tu skupina Pande ze Stanfordu. Nehledají mimozemšťany; pátrají po příčinách Parkinsonovy a Alzheimerovy choroby. Klíč spočívá ve skládání bílkovin. Proteiny na sebe berou specifické formy, aby mohly plnit své funkce. Když se špatně složí, následuje nemoc.

Folding@home modeluje proces skládání proteinů. To je obrovský výpočetní problém. Pandeův tým doufá, že pochopením fyziky chybného skládání mohou najít nové způsoby léčby. Proces je identický jako u SETI: stáhněte si aplikaci, nechte procesor přes noc nečinně pracovat a přispívejte k lékařské vědě.

Pomíjivá povaha dobrovolnické práce na počítači

Takových projektů jsou desítky. Mnohé z nich nejsou trvalé. Jakmile je dosaženo výzkumného cíle, síť se rozpadne. Někdy nový projekt nahradí starý. Někdy prostě zmizí.

To je fascinující model. Propůjčujete své nečinné cykly vědě. Na oplátku nedostanete nic jiného než hřejivý pocit zadostiučinění z přispění k SETI nebo lékařskému výzkumu. Software je nastaven na nízkou prioritu. Respektuje váš počítač. Vypne se, když to potřebujete. Probudí se, když počítač nepoužíváte.

Ale záleží na tom? Pokud lze síť použít k prolomení šifrování, pokud jsou kontroly přístupu křehké, pokud jsou projekty dočasné… stojí to za to riziko? Kód již existuje. Procesory jsou připojeny k síti. Otázkou je, zda vytváříme nástroj pro objevování nebo botnet, který čeká, až se to stane.

Poté, co váš počítač dokončí zpracování dat, projektový software odešle data zpět do řídicího uzlu. Uzel je seřadí a výsledky umístí do příslušné databáze. Poté odešle novou dávku dat do vašeho počítače. Tento cyklus se opakuje, dokud není úkol dokončen. Pokud je do projektu zapojeno dostatečné množství lidí, ambiciózních cílů je dosaženo v překvapivě krátké době.

Jak budou tyto gridové systémy pokročilejší, uvidíme, jak více organizací vytvoří univerzální sítě. Může přijít den, kdy se společnosti přímo propojí mezi sebou. V takovém světě lze výpočetní problémy, které se dnes zdají neřešitelné, vyřešit během několika hodin zpracování. Můžeme jen čekat a uvidíme.

Skutečný pokrok: Projekt porovnání genomu

Teorie je dobrá, ale důležitější jsou výsledky. Jako důkaz vezměte projekt Genome Comparison Project. Cílem tohoto výzkumného úsilí bylo porovnat proteinové sekvence z více než 3 500 organismů. Začalo to 20. prosince 2006.

K 21. červenci 2007 již projekt dosáhl všech svých cílů. To nevyžadovalo jedinou farmu superpočítačů. K těžkému zvedání byl použit gridový výpočetní systém. To je síla distribuovaných zdrojů.

Co je grid computing?

Lidé si je často pletou se standardním cloud computingem. Rozdíl je v rozsahu a účelu. Grid je síť počítačů, které sdílejí zdroje k řešení velkých a složitých problémů. Funguje jako virtuální superpočítač.

grid computing si můžete představit jako použití zdrojů z více administrativních domén k vyřešení jednoho jediného problému. Sdružují výkon mnoha jednotlivých počítačů distribuovaných po síti, často přes veřejný internet. To je odlišuje od jednoduchého clusteru, který se obvykle nachází v rámci jedné organizace.

Oblíbené příklady gridových projektů

Proč je to pro vás důležité? Protože tyto sítě řeší skutečné světové krize. Zde je několik pozoruhodných příkladů:

  • SETI@home : Využívá náhradní výpočetní výkon milionů osobních počítačů k hledání mimozemského života. Proměňuje nečinné procesory v odposlouchávací místa v hlubokém vesmíru.
  • Folding@home : Zaměřuje se na skládání proteinů. Studiem skládání proteinů vědci doufají, že lépe porozumí nemocem, jako je Alzheimerova a Parkinsonova choroba.
  • World Community Grid : Řešte humanitární problémy. Patří mezi ně výzkum rakoviny, výzkum HIV/AIDS a iniciativy v oblasti čisté energie.

Tyto projekty ukazují, jak grid computing přeměňuje nečinný hardware na energii pro vědecké účely. Nemusíte být vědec, abyste pomohli. Potřebujete pouze přístup k internetu a trochu volného času.

Proč na tom teď záleží

Složitost těchto systémů roste. Více korporací pravděpodobně vytvoří univerzální sítě v blízké budoucnosti. Posouváme se k éře, kdy jsou problémy s počítačem zredukovány na zvládnutelné kousky. To demokratizuje vysoce výkonné počítače. To znamená, že ke spuštění simulací nepotřebujete serverovou místnost za milion dolarů.

Infrastruktura již existuje. Aliance Globus a Open Grid Forum pokračují ve zlepšování standardů. Společnosti jako IBM již dlouho investují do zpřístupnění gridového počítání. Nástroje usnadňují online spolupráci při provádění těchto rozsáhlých úkolů.

Pohled do budoucnosti

Až příště uvidíte svůj počítač nečinný, pamatujte, že by mohl být součástí něčeho většího. Dokáže analyzovat proteinové sekvence nebo skenovat hvězdy. Technologie dozrála. Oblasti použití přibývají. A dopad je skutečný.

“Grid computing rozšiřuje svůj dosah.”

Všechny prvky jsou na svém místě. Jedinou otázkou je, zda je dokážeme dostatečně rychle využít. Budoucnost distribuované práce nepřichází. Už je tady a funguje na pozadí našeho každodenního života.