Mechatronická společnost. Paralelní výpočty: Clustery

Vývoj klastrových systémů (CS) v Rusku

Cluster je modulární multiprocesorový systém vytvořený na bázi standardních výpočetních uzlů propojených vysokorychlostním komunikačním prostředím. Nyní jsou slova „klastr“ a „superpočítač“ z velké části synonyma, ale než se to dalo říci s jistotou, hardware prošel dlouhým evolučním cyklem. Prvních 30 let po nástupu počítačů, až do poloviny 80. let, znamenala „superpočítačová“ technologie výhradně výrobu specializovaných vysoce výkonných procesorů. Nástup jednočipového mikroprocesoru však prakticky smazal rozdíl mezi „sériově vyráběnými“ a „obzvláště výkonnými“ procesory a od té chvíle bylo jedinou možností, jak vytvořit superpočítač, kombinovat procesory k paralelnímu řešení jednoho problému. . Alexey Latsis, jeden z tvůrců ruského superpočítače MVS-1000M, to nazývá „první superpočítačovou revolucí“ ve své knize „How to Build and Use Supercomputer“.

Zhruba do poloviny devadesátých let. Hlavní směr vývoje superpočítačových technologií byl spojen s konstrukcí specializovaných víceprocesorových systémů z sériově vyráběných mikroobvodů. Jeden z nově vznikajících přístupů, SMP (Symmetric Multi Processing), zahrnoval kombinaci mnoha procesorů využívajících sdílenou paměť, což značně usnadnilo programování, ale kladlo vysoké nároky na samotnou paměť. Udržet výkon takových systémů při zvýšení počtu uzlů na desítky bylo téměř nemožné. Navíc se tento přístup ukázal jako nejdražší v hardwarové implementaci. Řádově levnější a téměř nekonečně škálovatelná se ukázala metoda MPP (Massively Parallel Processing), ve které byly nezávislé specializované výpočetní moduly spojeny specializovanými komunikačními kanály, přičemž oba byly vytvořeny pro konkrétní superpočítač a nebyly použity pro žádný jiné účely.

Myšlenka vytvoření tzv. clusteru pracovních stanic byla vlastně vývojem metody MPP, protože logicky se systém MPP příliš nelišil od běžné lokální sítě. Lokální síť standardních osobních počítačů s příslušným softwarem byla použita jako multiprocesorový superpočítač a stala se předchůdcem moderního clusteru. Tato myšlenka byla plněji realizována v polovině 90. let s rozšířenou dostupností vysokorychlostních sběrnic PCI a nástupem levných, ale rychlých sítí. Fast Ethernet clustery začaly dohánět specializované MPP systémy z hlediska komunikačních schopností. To znamenalo, že ze standardních sériových počítačů pomocí sériových komunikačních technologií bylo možné vytvořit plnohodnotný MPP systém a takový systém byl v průměru o dva řády levnější.

Zde jsou nejznámější superpočítače s architekturou clusteru „první generace“: Beowulf (1994, NASA Goddard Space Flight Center) – 16procesorový cluster na procesorech Intel 486DX4/100 MHz; Avalon (1998, Los Alamos National Laboratory) - Linuxový cluster založený na procesorech Alpha 21164A/533 MHz. Avalon zpočátku tvořilo 68 procesorů, poté se jejich počet zvýšil na 140; jeho výkon v testu LINPACK 48.6 GFlops* mu umožnil zaujmout 113. místo ve 12. vydání žebříčku Top500 nejvýkonnějších počítačů na světě vedle 152procesorového SMP systému IBM RS/6000 SP. Prvním domácím systémem zahrnutým do TorbOO byl cluster MVS-1000M, vyrobený Výzkumným ústavem KVANT a Ústavem aplikované matematiky Ruské akademie věd. Skládal se z 384 uzlů založených na procesorech DEC-Compaq Alpha 21164.

* Flops (operace s pohyblivou řádovou čárkou za sekundu) – počet operací s pohyblivou řádovou čárkou za sekundu, jednotka měření výkonu superpočítače. GFlops (gigaflops) - miliarda operací s pohyblivou řádovou čárkou za sekundu; TFlops (teraflops) – bilion operací s pohyblivou řádovou čárkou za sekundu. Reálný výkon nejvýkonnějšího superpočítače současnosti přesahuje 136 TFlops; ještě před rokem bylo toto číslo 35 TFlops.

Existuje rozdíl mezi špičkovým a skutečným výkonem superpočítačů. Špičkový výkon víceprocesorového systému (cluster, SMP systém atd.) je teoretická hodnota, která je v praxi nedosažitelná. Získá se vynásobením špičkového výkonu procesoru počtem procesorů v systému. Špičkový výkon CPU se obecně získá vynásobením jeho hodinové rychlosti maximálním počtem operací provedených za cyklus hodin. Skutečný výkon klastru je výkon získaný při řešení skutečného problému (akademického nebo průmyslového). Například systémy v hodnocení Top500 jsou hodnoceny na základě výsledků testu LINPACK – skutečného akademického problému pro řešení soustavy lineárních rovnic.

Nový silný impuls pro rozvoj klastrových technologií, kromě vzniku pokročilejších komunikačních sítí, přinesl rychlý nárůst výkonu nově vydávaných hromadných procesorů, díky nimž se vysoce výkonná řešení stala dostupnějšími než kdy dříve. Například SKIF K-500, druhý tuzemský cluster zahrnutý do TorbOO, je postaven na základě 128 procesorů Intel Xeon a systémové sítě SCI. Tento cluster, postavený na podzim roku 2003 pro rusko-běloruský státní superpočítačový program „SKIF“, obsadil 407. místo v žebříčku s reálným výkonem 423,6 GFlops. Druhý „top“ cluster státního programu „SKIF K-1000“ založený na 576 procesorech AMD Opteron a systémové síti InfiniBand se objevil v říjnu 2004 a vstoupil do první stovky Top500 s reálným výkonem 2 032 TFlops. Oba clustery SKIF instalované v Bělorusku postavila společnost T-Platforms za účasti IPS RAS a běloruských partnerů a využívají ruské superpočítačové technologie. Nejvýkonnějším clusterem v Rusku je v současnosti MVS 15000BM s reálným výkonem více než 5,3 Tflops, je na 56. místě v Top500 a je instalován v Meziodborovém superpočítačovém centru (MSC RAS). Cluster je postaven z výpočetních uzlů IBM založených na procesorech PowerPC a systémové síti Myrinet.

Rychlý rozvoj klastrových technologií v posledních letech je jasně patrný z analýzy žebříčku Top500: od roku 2000 do roku 2004 se podíl klastrů v žebříčku zvýšil z 2,2 na 60,8 %. Jestliže v roce 2000 byly mezi 40 nejvýkonnějšími instalacemi pouze dva clustery (nejvýkonnější - 31. místo), pak v roce 2004 byl jejich počet mezi prvními 40 stroji 24). Přitom podle posledního vydání Top500 více než 71,5 % procesorů používaných k sestavení superpočítačů tvoří sériově vyráběné procesory Intel a AMD.

Clusterové technologie se využívají i v nejnovějším vývoji superpočítačů od předních výrobců: například nejvýkonnější superpočítač současnosti IBM BlueGene/L s výkonem více než 136 TFlops využívá mnoho prvků clusterové architektury.

Rozsah použití klastrových systémů není nyní o nic užší než u superpočítačů s odlišnou architekturou: neméně úspěšně se vyrovnávají s úkolem modelovat širokou škálu procesů a jevů. Superpočítačové modelování může výrazně snížit náklady a urychlit uvádění nových produktů na trh a také zlepšit jejich kvalitu. Například místo stavění drahých testovacích modelů nových aut a jejich následného rozbíjení o zeď kvůli technickým výpočtům lze vše spočítat rychleji a přesněji pomocí počítačových modelů. Díky tomu se mnoha západním automobilovým koncernům podařilo zkrátit dobu vývoje nového modelu vozu pětkrát – z 10 na 2 roky. Počítačové zpracování geofyzikálních dat umožňuje vytvářet vysoce detailní modely ropných a plynových polí, což zajišťuje efektivnější, bezpečnější a levnější těžbu vrtů.

Byl to vývoj klastrových technologií, který učinil vysoce výkonný výpočetní systém široce dostupným a umožnil řadě podniků využít jeho výhod. Takto jsou rozděleny oblasti použití 500 nejvýkonnějších počítačů na světě: 44,3 % - těžba, elektronika, automobilový průmysl, letectví a další průmyslová odvětví těžkého průmyslu a strojírenství, něco málo přes 20 % - věda a vzdělávání, superpočítačová centra . Více než 18 % pochází z výzkumu počasí a klimatu, 7 % z jaderných, vesmírných, energetických a vojenských vládních programů a 3,5 % z finančních společností a bank. Kromě toho seznam zahrnuje společnosti a organizace zabývající se medicínou a vývojem léků, počítačovou grafikou, dopravou, obchodováním, výrobou potravin, poradenstvím a státní správou.

Pokud jde o používání superpočítačů v Rusku, aktuální hodnocení superpočítačů CIS Top50, poprvé zveřejněné v prosinci 2004, představuje pouze tři třídy uživatelů: vědecké ústavy a univerzity, podniky působící v těžkém a ropném průmyslu a finanční instituce.

V průměru jsou domácí superpočítače ve výkonu stále mnohem horší než ty západní: stroje používané pro vědecký výzkum jsou 15krát nižší, výpočetní zdroje finančních společností 10krát nižší a průmyslové superpočítače 9krát nižší. Druhé vydání žebříčku Top50, zveřejněné v dubnu 2005, však ukazuje rychlý rozvoj tohoto odvětví. Počet systémů působících v průmyslovém sektoru se tak zvýšil ze 2 na 16 % a jejich průměrná produktivita okamžitě vzrostla o 135 %. Zvýšil se také počet superpočítačů finančních společností a bank ze 2 na 18 %. Podíl superpočítačů používaných pro vědecký výzkum klesl z 96 na 66 % a jejich průměrný výkon vzrostl o 70 %. Obecně druhé vydání domácího hodnocení superpočítačů dokládá výrazný nárůst podílu systémů pro komerční využití. Největší počet tuzemských superpočítačů dodala společnost IBM (26 %), ruští výrobci jsou však za ní jen o málo nižší.

Rodiny Blue Gene /L a SGI Altix.

Windows Compute Cluster Server (CCS) 2003 je považován za základní software pro organizaci výpočtů na clusterových systémech. Jsou uvedeny jeho obecné charakteristiky a složení služeb běžících na uzlech clusteru.

Na konci této části jsou uvedena pravidla pro práci s konzolí pro spouštění a správu úloh CCS. Popisuje podrobnosti o tom, jak pracuje plánovač CCS při provádění sekvencí úloh v klastru.

1.1. Architektura vysoce výkonných procesorů a clusterových systémů

V historii vývoje architektury počítačových procesorů lze rozlišit dvě hlavní fáze:

  • Fáze 1 - zvýšení taktovací frekvence procesorů (až 2000),
  • Fáze 2 - vznik vícejádrových procesorů (po roce 2000)

Přístup založený na SMP (Symmetrical MultiProcessing), který se vyvinul při budování vysoce výkonných serverů, v nichž několik procesorů sdílí systémové prostředky, a především RAM (viz obrázek 1.1), se tak posunul „dolů“ na úroveň jádra uvnitř procesoru.


Rýže. 1.1.

Na cestě k vícejádrovým procesorům se jako první objevila technologie Hyper-Threading, která byla poprvé použita v roce 2002 v procesorech Intel Pentium 4:


Rýže. 1.2.

V této technologii dva virtuální procesory sdílejí všechny prostředky jednoho fyzického procesoru, konkrétně mezipaměti, spouštěcí kanál a samostatné prováděcí jednotky. Navíc, pokud jeden virtuální procesor obsadil sdílený prostředek, druhý bude čekat na jeho uvolnění. Procesor s Hyper-Threadingem lze tedy přirovnat k multitaskingovému operačnímu systému, který každému v něm běžícímu procesu poskytuje vlastní virtuální počítač s plnou sadou nástrojů a plánuje pořadí a dobu fungování těchto procesů na fyzickém hardwaru. Pouze v případě Hyper-Threadingu se to vše děje na mnohem nižší hardwarové úrovni. Dva toky instrukcí však umožňují efektivnější načítání prováděcích jednotek procesoru. Reálný nárůst výkonu procesoru z použití technologie Hyper-Threading se odhaduje od 10 do 20 procent.

Plnohodnotný dvoujádrový procesor (viz obr. 1.3) vykazuje u určitých úloh nárůst výkonu o 80 až 100 procent.


Rýže. 1.3.

Dvoujádrový a obecně vícejádrový procesor lze tedy považovat za miniaturní SMP systém, ve kterém není potřeba používat složité a drahé víceprocesorové základní desky.

Každé jádro navíc může (jako například u procesoru Intel Pentium Extreme Edition 840) podporovat technologii Hyper-Threading, a proto tento druh dvoujádrového procesoru může spouštět čtyři programová vlákna současně.

Na začátku roku 2007 Intel představil 80jádrový jednočipový procesor s názvem Teraflops Research Chip (http://www.intel.com/research/platform/terascale/teraflops.htm). Tento procesor dokáže dosáhnout výkonu 1,01 teraflopů s minimálním taktem jádra 3,16 GHz a napětím 0,95 V. Celková spotřeba energiečip je pouze 62 wattů.

Podle předpovědí Intelu se v příštích 5 letech objeví komerční verze procesorů s velkým počtem jader a do roku 2010 bude mít čtvrtina všech dodaných serverů teraflopy. výkon.

Clusterové výpočetní systémy a jejich architektura

Cluster je lokální (geograficky umístěný na jednom místě) výpočetní systém, který se skládá z mnoha nezávislých počítačů a sítě, která je spojuje. Cluster je navíc lokální systém, protože je spravován v rámci samostatné administrativní domény jako jeden počítačový systém.

Počítačové uzly ze kterých se skládá, jsou standardní, univerzální (osobní) počítače používané v různých oblastech a pro různé aplikace. Výpočetní uzel může obsahovat buď jeden mikroprocesor nebo několik mikroprocesorů, které tvoří v druhém případě symetrickou (SMP) konfiguraci.

Síťovou složkou clusteru může být buď běžná lokální síť, nebo může být postavena na základě speciálních síťových technologií, které poskytují ultrarychlý přenos dat mezi uzly clusteru. Síť clusteru je navržena tak, aby integrovala uzly clusteru a je obvykle oddělena od externí sítě, přes kterou uživatelé přistupují ke clusteru.

Clusterový software se skládá ze dvou komponent:

  • vývojové/programovací nástroje a
  • nástroje pro správu zdrojů.

Vývojové nástroje zahrnují kompilátory jazyků, knihovny pro různé účely, nástroje pro měření výkonu a také debuggery, které dohromady umožňují vytvářet paralelní aplikace.

Software pro správu zdrojů zahrnuje nástroje pro instalaci, správu a plánování pracovních postupů.

Přestože existuje mnoho programovacích modelů pro paralelní zpracování, v současnosti převládá model předávání zpráv, implementovaný ve formě standardu MPI (Message Passing Interface). MPI je knihovna funkcí, které lze použít v programech napsaných v C nebo Fortranu k předávání zpráv mezi paralelními procesy a také k řízení těchto procesů.

Alternativou k tomuto přístupu jsou jazyky založené na tzv. „globálním rozděleném adresním prostoru“ (GPAS), jehož typickými představiteli jsou jazyky HPF (High Performance Fortran) a UPC (Unified Parallel C).

Cluster computing systems se staly pokračováním vývoje myšlenek zakotvených v architektuře systémů MPA. Jestliže v systému MPA působí modul procesoru jako úplný výpočetní uzel, pak se v clusterových systémech jako takové výpočetní uzly používají komerčně dostupné počítače. Rozvoj komunikačních technologií, zejména vznik vysokorychlostních síťových zařízení a speciálních softwarových knihoven, například MPI (Message Passing Interface), který implementuje mechanismus pro přenos zpráv pomocí standardních síťových protokolů, učinil klastrové technologie obecně dostupnými. V současné době vzniká mnoho malých clusterových systémů kombinací výpočetního výkonu laboratorních nebo učebních počítačů.

Atraktivní vlastností klastrových technologií je, že pro dosažení požadovaného výkonu umožňují budovat heterogenní systémy, tedy spojovat počítače různých typů do jednotlivých výpočetních systémů, od osobních počítačů až po výkonné superpočítače. Clusterové technologie se rozšířily jako prostředek k vytváření systémů třídy superpočítačů z hromadně vyráběných komponent, což výrazně snižuje náklady na výpočetní systém. Konkrétně jedním z prvních projektů, které byly realizovány v roce 1998, byl nákladově efektivní výpočetní systém (COCOA), ve kterém na základě 25 dvouprocesorových osobních počítačů s celkovými náklady asi 100 000 USD vznikl systém s výkonem odpovídajícím 48 Byl vytvořen procesor Cray T3D za několik milionů dolarů.

Lyle Long, profesor leteckého inženýrství na Penn State University, věří, že relativně levné klastrové výpočetní systémy by mohly dobře sloužit jako alternativa k drahým superpočítačům ve vědeckých organizacích. Pod jeho vedením byl na univerzitě vybudován klastr COCOA. V rámci tohoto projektu bylo 25 ra-

základnové stanice od společnosti DELL, z nichž každá obsahuje dva procesory Pentium II/400 MHz, 512 MB RAM, 4GB pevný disk SCSI a síťový adaptér Fast Ethernet. Pro připojení uzlů je použit 24portový switch Baynetworks 450T s jedním rozšiřujícím modulem. Instalovaný software zahrnuje operační systém RedHat Linux, kompilátory Fortran 90 a HPF od Portland Group, volně distribuovanou implementaci MPI - Message Passing Interface Chameleon (MPICH) a systém řazení DQS.

V příspěvku prezentovaném na 38. Aerospace Science Meeting and Exhibit Long popisuje paralelní verzi výpočetního programu pro vyrovnávání zátěže používaného k předpovídání hladin hluku vrtulníků na různých místech. Pro srovnání byl tento výpočetní program spuštěn na třech různých 48-procesorových počítačích pro výpočet šumu na 512 bodech. Na systému Cray T3E výpočet trval 177 sekund, na systému SGI Origin2000 - 95 sekund a na clusteru COCOA - 127 sekund. Clustery jsou tedy velmi efektivní výpočetní platformou pro úlohy této třídy.

Další výhodou clusterových systémů oproti superpočítačům je, že jejich majitelé nemusí sdílet procesorový čas s ostatními uživateli jako ve velkých superpočítačových centrech. Konkrétně COCOA poskytuje více než 400 tisíc hodin procesorového času ročně, zatímco v superpočítačových centrech může být obtížné získat 50 tisíc hodin.

O úplné rovnocennosti těchto systémů samozřejmě není třeba hovořit. Jak známo, výkon systémů s distribuovanou pamětí velmi závisí na výkonu přepínacího prostředí, které lze charakterizovat dvěma parametry: latence – doba zpoždění při odeslání zprávy a propustnost – rychlost přenosu informací. Například pro počítač Cray T3D jsou tyto parametry 1 μs respektive 480 Mb/s a pro cluster, ve kterém je jako přepínací médium použita síť Fast Ethernet, 100 μs a 10 Mb/s. To částečně vysvětluje velmi vysoké náklady na superpočítače. S parametry, jako jsou parametry uvažovaného clusteru, není mnoho úloh, které lze efektivně vyřešit na dostatečně velkém počtu procesorů.

Na základě výše uvedeného uvedeme definici: cluster je propojená sada plnohodnotných počítačů používaných jako jeden výpočetní prostředek. Jako uzly clusteru lze použít jak identické (homogenní shluky), tak různé (heterogenní shluky) počítače. Svou architekturou je klastrový výpočetní systém volně propojen. K vytváření clusterů se obvykle používají buď jednoduché jednoprocesorové osobní počítače, nebo dvou- či čtyřprocesorové SMP servery. V tomto případě nejsou kladena žádná omezení na složení a architekturu uzlů. Každý uzel může provozovat svůj vlastní operační systém. Nejčastěji používané standardní operační systémy jsou Linux, FreeBSD, Solaris, Tru64 Unix a Windows NT.

Literatura uvádí čtyři výhody dosažené shlukováním výpočetního systému:

absolutní škálovatelnost;

škálovatelný;

faktor vysoké dostupnosti;

poměr cena/výkon.

Pojďme si vysvětlit každou z výše uvedených vlastností klastrového výpočetního systému.

Vlastnictví absolutní škálovatelnost znamená, že je možné vytvářet velké clustery, které převyšují výpočetní výkon i těch nejvýkonnějších jednotlivých počítačů. Cluster může obsahovat desítky uzlů, z nichž každý je víceprocesorový.

Zvýšená škálovatelnost znamená, že cluster lze rozšířit přidáním nových uzlů po malých částech. Uživatel tak může začít s malým systémem a podle potřeby jej rozšiřovat.

Vzhledem k tomu, že každý uzel clusteru je nezávislý výpočetní stroj nebo systém, selhání jednoho z uzlů nevede ke ztrátě funkčnosti clusteru. V mnoha systémech je odolnost proti chybám automaticky podporována softwarem.

A konečně, klastrové systémy poskytují něco pro superpočítače nedosažitelné poměr cena/kvalita. Klastry libovolného výkonu lze vytvořit pomocí standardních „stavebních bloků“ a náklady na cluster budou nižší než jeden

noční počítač s ekvivalentním výpočetním výkonem.

Na úrovni hardwaru je tedy cluster souborem nezávislých výpočetních systémů propojených sítí. Řešení mohou být jednoduchá, založená na ethernetovém hardwaru, nebo složitá s vysokorychlostními sítěmi s propustností stovek megabajtů za sekundu.

Nedílnou součástí clusteru je specializovaný software, který má za úkol udržovat výpočty při poruše jednoho nebo více uzlů. Takový software přerozděluje výpočetní zátěž, když jeden nebo více uzlů clusteru selže, a také obnovuje výpočty, když některý uzel selže. Kromě toho, pokud má cluster sdílené disky, software clusteru udržuje jeden systém souborů.

Klasifikace architektur klastrových systémů

Literatura popisuje různé způsoby klasifikace klastrových systémů. Nejjednodušší klasifikace je založena na způsobu použití diskových polí: společně nebo samostatně.

Na Obr. 5.5.1 a 5.5.2 znázorňují struktury shluků dvou uzlů, jejichž koordinaci zajišťuje vysokorychlostní linka používaná pro zasílání zpráv. Může to být místní síť, kterou využívají i počítače, které nejsou součástí clusteru, nebo pronajatá linka. V případě pronajaté linky bude mít jeden nebo více uzlů clusteru přístup k místní nebo globální síti, čímž bude zajištěna komunikace mezi clusterem serverů a vzdálenými klientskými systémy.

Rozdíl mezi prezentovanými clustery je v tom, že v případě lokální sítě uzly využívají lokální disková pole a v případě dedikované linky sdílí uzly jedno redundantní pole nezávislých pevných disků neboli tzv. RAID (Redundant Pole nezávislých disků). RAID se skládá z několika disků spravovaných řadičem, propojených vysokorychlostními kanály a vnímaných externím systémem jako jeden celek. V závislosti na typu použitého pole lze zajistit různé stupně odolnosti proti chybám a výkonu.

CPU

CPU

Vysoká rychlost

CPU

CPU

dálnice

Zařízení

Zařízení

Zařízení

Zařízení

I/O

I/O

I/O

I/O

Disk

Disk

Rýže. 5.5.1. Konfigurace clusteru bez sdílených disků

Disk

Zařízení

Zařízení

CPU

CPU

I/O

I/O

CPU

CPU

Zařízení

Zařízení

Zařízení

Zařízení

I/O

I/O

I/O

I/O

Disk

Vysoká rychlost

Disk

dálnice

Rýže. 5.5.2. Konfigurace clusteru se sdílenými disky

Podívejme se na nejběžnější typy diskových polí:

RAID0 (striping) je diskové pole dvou nebo více pevných disků bez redundance. Informace jsou rozděleny do datových bloků a zapisovány na oba (několik) disků současně. Výhodou je výrazné zvýšení produktivity. Nevýhodou je, že spolehlivost RAID0 je zjevně nižší než spolehlivost kteréhokoli z disků jednotlivě a klesá s rostoucím počtem disků zařazených do RAID0, protože porucha některého z disků vede k nefunkčnosti celého pole. .

RAID1 (zrcadlení) je pole skládající se z minimálně dvou disků. Výhodou je přijatelná rychlost zápisu a zvýšení rychlosti čtení při paralelizaci dotazů a také vysoká spolehlivost: funguje, dokud je funkční alespoň jeden disk v poli. Pravděpodobnost selhání dvou disků najednou se rovná součinu pravděpodobností selhání každého disku. V praxi, pokud jeden z disků selže, je třeba přijmout naléhavá opatření: redundanci je třeba znovu obnovit. K tomu se doporučuje používat horké náhradní disky s libovolnou úrovní RAID (kromě nuly). Výhodou tohoto přístupu je zachování stálé dostupnosti. Nevýhodou je, že musíte zaplatit cenu dvou pevných disků, abyste získali použitelnou kapacitu jednoho pevného disku.

RAID10 je zrcadlené pole, ve kterém jsou data zapisována postupně na několik disků, jako v RAID0. Tato architektura je pole RAID0, jehož segmenty jsou pole RAID1 namísto jednotlivých disků. Pole této úrovně tedy musí obsahovat alespoň čtyři disky. RAID10 kombinuje vysokou odolnost proti chybám a výkon.

Ucelenější obrázek o klastrových výpočetních systémech poskytuje klasifikace klastrů podle použitých metod shlukování, které určují hlavní funkční vlastnosti systému:

shlukování s pasivní redundancí;

shlukování s aktivní redundancí;

samostatné servery;

servery s připojením ke všem diskům;

servery se sdílenými disky.

Shlukování s redundancí je nejstarší a nejuniverzálnější metoda. Jeden ze serverů přebírá veškerou výpočetní zátěž, zatímco druhý zůstává neaktivní, ale je připraven převzít výpočty, pokud hlavní server selže. Aktivní (nebo primární) server pravidelně odesílá zprávu s hodinami na záložní (sekundární) server. Pokud nejsou žádné zprávy prezenčního signálu, což je považováno za selhání primárního serveru, převezme řízení sekundární server. Tento přístup zlepšuje dostupnost, ale nezlepšuje výkon. Navíc, pokud je jediným typem komunikace mezi uzly zasílání zpráv a pokud oba servery v clusteru nesdílejí disky, pak záložní server nemá přístup k databázím spravovaným primárním serverem.

Pasivní redundance není pro clustery typická. Pojem „cluster“ označuje sadu vzájemně propojených uzlů, které se aktivně účastní výpočetního procesu a společně vytvářejí iluzi jednoho výkonného výpočetního stroje. Tato konfigurace se běžně označuje jako systém s aktivním sekundárním serverem a existují tři metody shlukování: samostatné servery, servery nesdílené na disku a servery se sdíleným diskem.

V první metodě je každý uzel clusteru považován za nezávislý server s vlastními disky a žádný z disků v systému není sdílen. Schéma poskytuje vysoký výkon a vysokou dostupnost, ale vyžaduje speciální software pro plánování distribuce požadavků klientů mezi servery tak, aby bylo dosaženo vyváženého a efektivního využití všech serverů. Je nutné, aby pokud jeden z uzlů selže během provádění aplikace, jiný uzel v clusteru může tuto aplikaci zachytit a ukončit. K tomu je třeba data v systému neustále zálohovat, aby měl každý server přístup ke všem nejnovějším datům v systému. Kvůli těmto nákladům je vysoké dostupnosti dosaženo pouze na úkor výkonu.

Pro snížení komunikační režie se nyní většina clusterů skládá ze serverů připojených ke sdíleným diskům, které jsou obvykle představovány diskovým polem RAID (viz obrázek 5.5.2).

Jedna varianta tohoto přístupu předpokládá, že se nepoužívá sdílení disku. Sdílené disky jsou rozděleny do oddílů a každému uzlu clusteru je přidělen vlastní oddíl. Pokud jeden uzel selže, lze cluster překonfigurovat tak, aby byla přístupová práva k jeho sdílenému oddílu disku přenesena na jiný uzel.

Další možností je, že více serverů v průběhu času sdílí přístup ke sdíleným diskům, takže každý uzel má přístup ke všem oddílům všech sdílených disků. Tento přístup vyžaduje určitý druh zamykacího mechanismu, který zajistí, že k datům bude mít v daný okamžik přístup pouze jeden ze serverů.

Clustery poskytují vysokou dostupnost – nemají jediný operační systém a sdílenou paměť, tedy není problém s koherencí mezipaměti. Speciální software v každém uzlu navíc neustále monitoruje výkon všech ostatních uzlů. Toto ovládání je založeno na pravidelném odesílání signálu „Jsem stále vzhůru“ každým uzlem. Pokud z určitého uzlu není přijat signál, je takový uzel považován za mimo provoz; není mu dána schopnost provádět I/O, jeho disky a další prostředky (včetně síťových adres) jsou přeřazeny do jiných uzlů a programy na něm běžící jsou restartovány na jiných uzlech.

Jsou přidány škály výkonu clusteru a také uzly. Cluster může provozovat více jednotlivých aplikací, ale škálování jedné aplikace vyžaduje, aby její části komunikovaly výměnou zpráv. Nelze však ignorovat, že interakce mezi uzly clusteru trvají mnohem déle než v tradičních počítačových systémech. Možnost téměř neomezeného růstu počtu uzlů a absence jediného operačního systému činí architektury clusteru extrémně škálovatelnými. Úspěšně byly použity systémy se stovkami a tisíci uzlů.

Při vývoji klastrů lze rozlišit dva přístupy. Prvním přístupem je vytvoření malých clusterových systémů. Cluster kombinuje plně funkční počítače, které nadále fungují jako samostatné jednotky, například učební počítače nebo laboratorní pracovní stanice. Druhým přístupem je cílené vytváření výkonných výpočetních zdrojů. Systémové jednotky počítačů jsou kompaktně umístěny -

umístěné ve speciálních stojanech a jeden nebo více plně funkčních počítačů, nazývaných hostitelské počítače, jsou přiděleny ke správě systému a spouštění úloh. V tomto případě není potřeba vybavovat počítače výpočetních uzlů grafickými kartami, monitory, diskovými jednotkami a dalším periferním zařízením, což výrazně snižuje náklady na systém.

Pro slučování počítačů do clusteru bylo vyvinuto mnoho technologií. V současnosti je nejrozšířenější technologií Ethernet, a to kvůli snadnému použití a nízkým nákladům na komunikační zařízení. Za to však musíte zaplatit evidentně nedostatečnou rychlostí výměny.

Vývojáři balíku podprogramů ScaLAPACK, určeného pro řešení úloh lineární algebry na víceprocesorových systémech, ve kterých je velký podíl komunikačních operací, formulují požadavek na víceprocesorový systém následovně: „Rychlost meziprocesorových výměn mezi dvěma uzly, měřená v MB /s, musí být alespoň 1/10 špičkového výkonu výpočetního uzlu, měřeno v MFLOPS."

Topologie klastrů

Podívejme se na topologie charakteristické pro tzv. „malé“ shluky, skládající se ze dvou až čtyř uzlů.

Topologie shlukových párů používá se při organizování dvou- nebo čtyřuzlových shluků (obr. 5.5.3). Uzly jsou seskupeny do párů, k oběma uzlům, které jsou součástí dvojice, jsou připojena disková pole a každý uzel z dvojice má přístup ke všem diskovým polím této dvojice. Jeden z uzlů v páru se používá jako záloha pro druhý.

Čtyřuzlový klastrový pár je jednoduchým rozšířením dvouuzlové topologie. Z hlediska administrace a konfigurace jsou oba páry clusterů považovány za jeden celek.

Tato topologie může být použita k organizaci clusterů s vysokou dostupností dat, ale odolnost proti chybám je implementována pouze v rámci páru, protože zařízení pro ukládání informací patřící do páru nemají fyzické spojení s jiným párem.

Přepínač

shluk

shluk

shluk

shluk

Disk

Disk

Disk

Disk

Rýže. 5.5.3. Topologie shlukových párů

Topologie + 1 umožňuje vytvářet shluky dvou, tří a čtyř uzlů (obr.5.5.4). Každé diskové pole je spojeno pouze se dvěma uzly clusteru. Disková pole jsou organizována podle schématu RAID1 (zrcadlení). Jeden server má připojení ke všem diskovým polím a slouží jako záloha pro všechny ostatní (primární nebo aktivní) uzly. Pohotovostní server lze použít k zajištění vysoké dostupnosti při spárování s jakýmkoli aktivním uzlem.

Topologie se doporučuje pro organizování clusterů s vysokou dostupností dat. V konfiguracích, kde je možné vyhradit jeden uzel redundanci, může tato topologie snížit zatížení aktivních uzlů a zajistit, že zatížení selhávajícího uzlu může být replikováno v pohotovostním uzlu bez ztráty výkonu. Mezi kterýmkoli primárním uzlem a záložním uzlem je zajištěna odolnost proti chybám. Topologie zároveň neumožňuje globální odolnost proti chybám, protože hlavní uzly clusteru a jejich systémy pro ukládání informací nejsou vzájemně propojeny.

Topologie × je podobná topologii + 1, umožňuje vytvářet shluky dvou, tří a čtyř uzlů, ale na rozdíl od ní má větší flexibilitu a škálovatelnost (obr. 5.5.5).

Přepínač

shluk

shluk

shluk

shluk

Přepínač

shluk

shluk

shluk

shluk

Přepínač

Disk

Disk

Disk

Rýže. 5.5.5. Topologie ×

Pouze v této topologii mají všechny uzly clusteru přístup ke všem diskovým polím, která jsou zase sestavena podle schématu RAID1 (zrcadlení). Škálovatelnost topologie se projevuje ve snadném přidávání dalších uzlů a diskových polí do clusteru bez změny připojení v systému.

shluk

shluk

shluk

shluk

Disk

Disk

Disk

Disk

Rýže. 5.5.6. Plně oddělená přístupová topologie

Plně oddělená přístupová topologie umožňuje připojení každého diskového pole pouze k jednomu uzlu clusteru (obr. 5.5.6 ). Doporučeno pouze pro ty aplikace, které se vyznačují zcela samostatnou přístupovou architekturou.

Bezpečnostní otázky

1. Uveďte definici klastrového výpočetního systému.

2. Vyjmenujte hlavní výhody a nevýhody clusterových výpočetních systémů.

3. Jaké klasifikace klastrových počítačových systémů znáte

4. Jaké znáte topologie clusterového systému? Pojmenujte jejich výhody a nevýhody.

Literatura

1. Architektury a topologie víceprocesorových výpočetních systémů / A.V. Bogdanov, V.V. Korkhov, V.V. Mareev, E.N. Staňková. - M.: INTUIT.RU, 2004. - 176 s.

2. Mikroprocesorové systémy: učebnice. manuál pro univerzity /

E.K. Alexandrov, R.I. Grushvitsky, M.S. Kupriyanov a další; upravil D.V. Puzanková . - Petrohrad: Politechnika, 2002. - 935 s.

Cluster computing není nový obor. Zájem o ně však v poslední době výrazně vzrostl – řada organizací považuje clustery za hlavní nástroj pro řešení problémů, jako je zvýšení výkonu aplikací, zajištění vysoké dostupnosti a také vysoká škálovatelnost svých výpočetních systémů.

Pokrok v klastrových technologiích v posledním desetiletí umožnil použít k jejich sestavení levné počítače. Efektivita nákladů, výpočetní výkon a flexibilita těchto clusterů z nich učinily atraktivní alternativu k centralizovanému výpočetnímu modelu založenému na tradičních superpočítačích (dále slovem „klastr“ budeme mínit hromadný produkt, nikoli „zvláštní zakázku“). “).

Clustery se ukázaly jako nenákladná a efektivní alternativa k jedno-case superpočítačům s originální uzavřenou architekturou. Jsou postaveny na standardních komponentách a jsou široce používány pro vysoce výkonné výpočty, dostupnost a škálovatelnost. A pokud první příležitost zajímá především akademické kruhy, pak poslední dvě jsou velmi atraktivní pro podniky jakékoli velikosti. A nejen atraktivní, ale také cenově dostupné.

Dnes může levný cluster z komponent, které jsou v masové výrobě, sestavit téměř každá sebevědomá počítačová společnost a s vydáním takového clusterového OS, jako je Windows Computing Cluster Server 2003, který umožňuje poměrně jednoduchou instalaci, základní úroveň klastrová řešení se stávají dostupnými pro malé a střední podniky. A možná se nezdá být nerozumné předpokládat, že trvalé snižování cen hardwarových a softwarových komponent a vysokorychlostních síťových technologií brzy učiní základní klastry běžným prvkem informačních systémů jakéhokoli rozsahu.

Do Tématu týdne věnovaného clusterovému počítání jsme se proto pokusili zařadit nejen přehledovou část, ale i články o konkrétních produktech, po kterých bude ukrajinský byznys nepochybně v blízké budoucnosti poptávky. Zejména zde čtenář najde jak praktickou lekci z naší Test Laboratory, tak popis clusterových operačních systémů Windows Computing Cluster Server 2003/2008, které mají velkou šanci stát se populárními.

Nejprve si připomeňme definici shluku. Toto je název místního (na rozdíl od distribuovaného) výpočetního systému, který se skládá z mnoha nezávislých počítačů vzájemně propojených kanály přenosu dat. Lokalita clusteru spočívá v tom, že všechny jeho subsystémy jsou „viditelné“ v jedné administrativní doméně a je řízen jako jeden výpočetní systém. Počítače, které jsou součástí clusteru, se nazývají uzly. Obvykle se jedná o sériově vyráběné univerzální počítače, které mohou pracovat samostatně. Uzly mohou být jednoprocesorové nebo víceprocesorové (konfigurace SMP). V klasickém provedení sdílejí všechny uzly externí paměť na poli pevného disku při spouštění aplikací, přičemž pro specializovanější funkce využívají interní HDD. Pro komunikaci mezi uzly se obvykle používá nějaká standardní síťová technologie, i když to nevylučuje samostatně vyvinuté komunikační kanály. Clusterová síť je samostatná – je izolovaná od vnějšího síťového prostředí.

Klasifikace

Klastry lze klasifikovat podle různých kritérií, nejčastěji se však dělí do tří kategorií, které jsou dány povahou a účelem aplikace.

Klastry s vysokou dostupností (HA).. Někdy se jim také říká odolné proti chybám. Takové clustery jsou navrženy tak, aby poskytovaly koncovým uživatelům nepřetržitý přístup k datům nebo službám (typicky webovým službám). Obvykle jedna instance aplikace běží na jednom uzlu, a když se tento uzel stane nedostupným, řízení nad ním převezme jiný uzel (obrázek 1). Tato architektura také umožňuje opravy a preventivní údržbu bez zastavení služeb. Kromě toho, pokud jeden uzel selže, službu lze obnovit, aniž by to ovlivnilo dostupnost ostatních. Je pravda, že výkon systému se sníží.

Clustery s vysokou dostupností jsou nejlepší volbou pro provozování kriticky důležitých aplikací nebo databází, poštovních, souborových, tiskových, webových a aplikačních serverů. Na rozdíl od distribuovaných a paralelních výpočtů tyto clustery snadno a transparentně umožňují existujícím aplikacím organizacím, které nejsou specifické pro clustery, což umožňuje bezproblémové rozšiřování sítě s růstem firmy.

Clustery pro vyrovnávání zátěže. Tento typ clusteru distribuuje příchozí požadavky mezi více uzlů, na kterých běží stejné programy nebo hostují stejný obsah (obrázek 2). Každý uzel je schopen zpracovávat požadavky na stejnou aplikaci nebo obsah. Pokud některý z uzlů selže, požadavky jsou přerozděleny mezi zbývající. Obvykle se takové clustery používají pro webhosting.

Obě klastrové technologie diskutované výše lze kombinovat, aby se zvýšila spolehlivost, dostupnost a škálovatelnost aplikací.

Clustery pro vysoce výkonné výpočty (High-Performance Cluster, HPC). Tradičně byly paralelní výpočty prováděny na víceprocesorových systémech navržených speciálně pro tento účel. V nich mnoho procesorů sdílelo společnou paměť a sběrnicové rozhraní v rámci jednoho počítače. S příchodem technologie vysokorychlostního přepínání bylo možné kombinovat počítače do clusterů pro paralelní výpočty.

Paralelní klastr je systém, který používá mnoho uzlů k paralelizaci výpočtů k řešení konkrétního problému. Na rozdíl od vyvažování zátěže a clusterů s vysokou dostupností, které rozdělují požadavky/úlohy mezi uzly, které je zpracovávají jako celek, v paralelním prostředí je požadavek rozdělen do mnoha dílčích úloh, které jsou zase distribuovány ke zpracování mezi uzly v rámci clusteru. Paralelní clustery se používají především pro aplikace, které vyžadují intenzivní matematické výpočty.

Komponenty klastru

Základní stavební kameny (komponenty) klastrů jsou rozděleny do několika kategorií: samotné uzly, klastrový software, vyhrazená síť, která vyměňuje data mezi uzly, a odpovídající síťové protokoly.

Uzly

Návrhové uzly přešly z tradičních podstavcových šasi na víceprocesorové systémy s jedním rackem a blade servery, které poskytují vyšší hustotu procesorů v prostorově omezených prostředích.

V poslední době výrazně vzrostl výkon procesorů, pamětí, přístupová rychlost pevných disků a jejich kapacita. Zajímavé je, že s tímto, v některých případech exponenciálním nárůstem výkonu, se náklady na tyto technologie výrazně snížily.

V typickém případě může být uzel v clusteru řídící (master) nebo výpočetní (slave) uzel (obr. 3). Může existovat pouze jeden hlavní uzel. Zodpovídá za provoz clusteru a je také klíčový pro middleware clusteru, směrování procesů, odesílání a monitorování stavu každého výpočetního uzlu. Ty provádějí výpočty a operace se systémem ukládání dat. Tyto uzly jsou v podstatě plně funkční samostatné počítače a běžně se prodávají jako stolní počítače nebo servery.

Software

Jako běžný stolní počítač je cluster OS srdcem každého uzlu. Je neviditelně přítomen během jakékoli akce uživatele, ať už jde o přístup k systému souborů, odesílání zpráv nebo spouštění dalšího procesu. Uživatelé si mohou vybrat různá programovací paradigmata nebo middleware, ale cluster OS je pro všechny stejný.

Typický náčrt návrhu OS je uveden v tabulce. Ukazuje základní bloky tradičního uzlu. Primární role klastrového OS je primárně multiplexovat více uživatelských procesů do jediné sady hardwarových komponent (správa zdrojů) a poskytovat užitečné abstrakce pro software na vysoké úrovni. Některé z těchto abstrakcí zahrnují ochranu hranic paměti, koordinaci procesů/vlákna a komunikace a správu zařízení. Je třeba poznamenat, že většinu funkcí specifických pro clustery provádí middleware. A jsou pro to důvody. Clusterový OS je skutečně poměrně složitý a není vždy jasné, jak provedené změny ovlivní ostatní systémy. Proto je lepší provést potřebné úpravy na úrovni middlewaru a nově přidaná funkcionalita může být přenesena na jiné operační systémy.

Ve výše uvedené definici clusteru bylo zmíněno, že je viditelný pro správce a uživatele jako jeden výpočetní systém. Toho je dosaženo pomocí Jeden systémový obrázek (SSI). Je to to, co skrývá heterogenní a distribuovanou povahu dostupných zdrojů a představuje je uživatelům a aplikacím jako jediný výpočetní zdroj. SSI lze implementovat na jedné nebo více z následujících úrovní: hardware, OS, middleware a/nebo aplikace. Zde je příklad několika klíčových služeb poskytovaných clusterem SSI:

  • jediný vstupní bod;
  • jednotné uživatelské rozhraní;
  • prostor pro jeden proces;
  • jediná paměť a I/O prostor;
  • jednotná hierarchie souborů;
  • jediné místo kontroly a řízení.

Systémy jako Digital/Compaq Memory Channel a Distributed Shared Memory poskytují SSI na hardwarové úrovni a umožňují uživatelům nahlížet na cluster jako na systém sdílené paměti. Operační systémy SCO UnixWare NonStop Cluster, Sun Solaris-MC, GLUNIX a MOSIX podporují SSI na úrovni jádra.

Implementace SSI na každé z výše uvedených úrovní má svá pro a proti. Hardwarová vrstva tedy může poskytovat nejvyšší stupeň transparentnosti, ale díky své rigidní architektuře není o nic méně flexibilní, než je požadováno pro rozšíření a vylepšení systému. Vrstva jádra poskytuje SSI vývojářům i koncovým uživatelům, ale je příliš drahá a obtížně se upravuje. Hlavní výhoda aplikační vrstvy oproti vrstvě jádra spočívá v tom, že v první je SSI implementováno ve fázích a uživatel získává schopnosti okamžitě, zatímco ve druhé nemůže jít produkt na trh, dokud všechny komponenty jádra nepodporují SSI. Middlewarová vrstva je kompromisem mezi dvěma výše uvedenými implementačními mechanismy SSI.

Síťová zařízení a protokoly

Vytvoření veřejných klastrů bylo možné pouze díky adekvátním síťovým technologiím pro meziuzlovou komunikaci. Veřejné klastry zahrnují jednu nebo více vyhrazených sítí pro přenos paketů zpráv v rámci distribuovaného systému. To odlišuje cluster od souboru volně propojených autonomních počítačů prostřednictvím sdílené LAN.

Dnes mají vývojáři clusterů dostatek příležitostí k výběru síťové technologie. Vzhledem k tomu, že náklady na síťové vybavení pro clustery se pohybují od „téměř ničeho“ až po několik tisíc dolarů na uzel, nemusí to být poslední složka při určování ceny produktu. Praxe poskytuje příklady budování velmi efektivních clusterů pomocí levného síťového vybavení, které lze vidět v běžné LAN. Jednotlivé síťové produkty speciálně navržené pro clusterovou komunikaci jsou přitom cenově srovnatelné s pracovními stanicemi. Výběr síťové technologie závisí na řadě faktorů: cena, výkon, kompatibilita s jiným hardwarem a softwarem clusteru a také komunikační vlastnosti aplikací, které poběží na clusteru.

Výkon sítě je obecně popsán z hlediska latence a šířky pásma. Latence je doba od požadavku na data k jejímu přijetí nebo doba, za kterou se přenesou z jednoho počítače do druhého, včetně režie softwaru pro generování zprávy a doby, kterou trvá přenos bitů. V ideálním případě by aplikace napsané pro clustery měly mít minimální zasílání zpráv. Pokud aplikace odešle velké množství krátkých zpráv, bude její výkon záviset na latenci sítě, ale pokud se budou vyměňovat dlouhé zprávy, bude mít její propustnost velký vliv na tento parametr. Je zřejmé, že výkon aplikace bude nejlepší s nízkou latencí a velkou šířkou pásma. Ke splnění těchto dvou požadavků jsou zapotřebí efektivní komunikační protokoly, které minimalizují režii a rychlá síťová zařízení.

Komunikační nebo síťové protokoly definují pravidla a konvence, které budou dva nebo více počítačů v síti používat k výměně informací. Mohou být založené na připojení nebo bez připojení, poskytují různé úrovně spolehlivosti - s plnou zárukou doručení v pořadí paketů i bez nich, synchronní (bez ukládání do vyrovnávací paměti) a asynchronní (s ukládáním do vyrovnávací paměti).

Pro komunikaci v clusteru se používají jak tradiční síťové protokoly, původně vyvinuté pro Internet (IP), tak i speciálně vytvořené. Kromě toho existují dva relativně nové standardy také speciálně navržené pro clustery. Nebudeme se zdržovat protokolem IP, který je našim čtenářům docela známý, ani ostatními, protože všechny jsou zcela specifické. Uvedeme pouze jejich jména, aby se zájemci mohli obrátit buď na literaturu, nebo na „vševědoucí“ internet. Jedná se zejména o Active Messages, Fast Messages, Virtual Memory-Mapped Communication system, U-net a Basic Interface for Parallelism protokoly. Podívejme se na dva standardy.

Do roku 1997 pokročil výzkum protokolů s nízkou latencí do takové míry, že nakonec vedl k vytvoření nového standardu pro klastrovou komunikaci, Virtual Interface Architecture (VIA). Ve stejné době průmysl pracoval na standardech pro sdílené úložné subsystémy. Výsledkem těchto snah byl InfiniBand.

VIA je komunikační standard, který spojuje nejlepší úspěchy různých projektů. Byl vytvořen konsorciem akademických a průmyslových partnerů včetně Intel, Compaq a Microsoft. Verze VIA 1.1 s podporou heterogenního hardwaru byla k dispozici na začátku roku 2001. Jak název napovídá, VIA je založena na konceptu virtuálního síťového rozhraní. Standard stanoví, že před odesláním zprávy musí být přijímací a odesílací vyrovnávací paměti přiděleny a svázány s fyzickou pamětí. Jakmile jsou vytvořeny vyrovnávací paměti a jejich přidružené datové struktury, nejsou vyžadována žádná systémová volání. Operace příjmu a odesílání v uživatelské aplikaci se skládají ze zápisu popisovače do fronty. Aplikace si může vybrat, zda bude čekat na potvrzení, že operace byla dokončena, nebo bude pokračovat ve své hlavní práci během zpracování zprávy.

Ačkoli lze VIA zpřístupnit přímo programování aplikací, mnoho vývojářů systémů se domnívá, že je to příliš nízká úroveň pro aplikace, protože aplikace musí být zodpovědná za alokaci části fyzické paměti a zajištění jejího efektivního využití. Očekává se, že většina prodejců OS a middlewaru poskytne rozhraní VIA, které bude podporovat programování aplikací. Na podzim roku 2000 tak většina prodejců databází poskytovala verze svých produktů, které běžely na VIA. Další klastrový software, jako jsou systémy souborů, je rychle dostupný.

Standard InfiniBand byl podporován konsorciem průmyslových partnerů, včetně společností Compaq, Dell, HP, IBM, Intel, Microsoft a Sun Microsystems. Architektura InfiniBand nahrazuje sdílenou sběrnici, která je standardním I/O systémem v moderních počítačích, vysokorychlostním sériovým systémem založeným na kanálech. Všechny systémy a zařízení se připojují k látce pomocí adaptéru Host Channel Adapter (HCA), který připojuje hostitelský CPU k látce InfiniBand, nebo adaptéru Target Channel Adapter (TCA), který připojuje InfiniBand k dalším I/O zařízením, jako je Ethernet, Fibre Channel nebo s úložnými systémy. Spojení InfiniBand je plně duplexní a pracuje s propustností 2,5 Gb/s v jednom směru v topologii bod-bod. Data jsou odesílána v paketech a existuje šest režimů přenosu: spolehlivé a nespolehlivé spojení, spolehlivý a nespolehlivý datagram, multicast a nezpracované pakety („raw“ režim). InfiniBand navíc podporuje vzdálený přímý přístup do paměti, který umožňuje jednomu procesoru číst nebo zapisovat do paměti druhého.

Pokud jde o síťové zařízení, které podporuje meziuzlovou komunikaci, lze jej rozdělit do čtyř kategorií – v závislosti na tom, zda se jedná o připojení k I/O sběrnici nebo k paměťové sběrnici, a na hlavním způsobu komunikace – pomocí zpráv nebo sdílených. disková paměť.

Ze čtyř kategorií propojení jsou nejběžnější systémy založené na zprávách a I/O sběrnicích, protože poskytují nejpřehlednější rozhraní pro počítač. I/O sběrnice má alespoň hardwarové přerušení, které může informovat procesor, že data jsou připravena ke čtení. Takové systémy jsou implementovány ve všech široce dostupných síťových technologiích, stejně jako v řadě nejnovějších produktů navržených speciálně pro clusterové výpočty.

Systémy s připojením I/O sběrnice a sdílenou diskovou pamětí zahrnují počítače se sdíleným diskovým subsystémem. Paměťová připojení jsou méně běžná, protože paměťová sběrnice je obecně navržena pro každý typ počítače jinak. Mnoho takových systémů je však implementováno softwarově nebo prostřednictvím mechanismu mapování I/O portů do paměti, jako je paměťový kanál.

Kromě toho existují hybridní systémy, které kombinují funkce několika kategorií, například InfiniBand umožňuje posílat jak data na disk, tak zprávy do jiných uzlů. Podobně může Scalable Coherent Interface (SCI) využívat oba mechanismy výměny.

Clusterové sítě

Síť clusterového systému může být postavena na základě tradičních síťových produktů používaných v sítích LAN nebo navržena speciálně pro clusterové výpočty. V druhém případě poskytuje další hardwarovou podporu, která snižuje latenci.

Přepínané ethernetové technologie dnes díky nízkým nákladům na porty a standardizaci rozhraní vedou jako propojovací systémy v široce dostupných klastrech. Mnoho počítačů je vybaveno vestavěnými porty 1 GE, vše, co musíte udělat, je zakoupit levný přepínač. Pro zvýšené požadavky se však využívají i specializované sítě. Jakýkoli jejich podrobný popis by nás zavedl daleko za hranice možného, ​​proto pro úplnost uvedeme o jednotlivých z nich jen velmi stručné informace.

Giganet (cLAN). Technologie cLAN (collapsed LAN), nyní vlastněná společností Emulex, byla vyvinuta pro podporu VIA v hardwaru. Jednalo se o první nativní hardwarovou implementaci standardu VIA v tomto odvětví. Klíčové vlastnosti sítě jsou následující.

Na nejnižší úrovni komunikačního modelu je nekoherentní distribuovaná sdílená paměť (DSM). Část virtuálního adresového prostoru aplikace je logicky mapována přes síť do fyzické paměti na jiném uzlu. Data se mezi aplikacemi přenášejí zápisem do oblasti sdílené paměti pomocí standardních instrukcí pro zápis procesoru. Vyrovnávací paměť ve vzdáleném uzlu je reprezentována souborem cookie vzdáleného přímého přístupu do paměti, který uděluje vlastníkovi uzlu oprávnění k přístupu k vyrovnávací paměti.

Myrinet. Tuto plně duplexní síť dodává společnost Myricom. Je široce používán v mnoha akademických projektech, zejména v Berkeley Network of Workstations (NOW). Fyzicky se síť skládá ze dvou optických kabelů (downstream a upstream) připojených k hostiteli přes společný konektor. Počítače jsou připojeny pomocí směrovačů nebo přepínačů (ty lze nakonfigurovat tak, aby poskytovaly redundantní cesty). Je podporováno přepínání bez ukládání do vyrovnávací paměti paketů (cut-through), což umožňuje přenos zpráv z jednoho konce na druhý s minimálním zpožděním. Myrinet má vestavěný programovatelný procesor – umožňuje experimentovat s mnoha komunikačními protokoly.

Myrinet implementuje řadu mechanismů pro zajištění odolnosti proti chybám. Patří mezi ně řízení toku, řízení chyb a kontrola funkčnosti kanálů (tlukot srdce).

Nejnovější verze, tzv. čtvrtá generace Myrinet 10G, podporuje rychlost přenosu dat 10 Gb/s v každém směru a je kompatibilní s 10 GE na úrovni PHY. Latence sítě je velmi nízká – pouze 5 µs.

QsNet. Tato vysokorychlostní síť s nízkou latencí je vyvinuta společností Quadrics Supercomputers World (QSW). Strukturálně QsNet zahrnuje dva subsystémy:

  • síťové rozhraní sestávající z jednoho nebo více síťových adaptérů v každém uzlu;
  • vícesběrnicová datová síť, která spojuje počítače do clusteru.

Síťové rozhraní je založeno na vlastních čipech s názvem Elan. Modifikace Elan III kombinuje vyhrazený I/O procesor pro odlehčení CPU, sběrnici PCI (66 MHz, 64 bitů), duplexní kanál (400 MHz, 8 bitů), jednotku správy paměti (MMU), mezipaměť a rozhraní místní paměti. Čip provádí tři typy základních operací:

  • vzdálené čtení a zápis;
  • přímý přenos dat z uživatelského virtuálního adresního prostoru jednoho procesoru do druhého bez nutnosti synchronizace;
  • správa protokolů.

Síť je konstruována na bázi dedikovaných přepínačů, které jsou kombinovány ve speciálním šasi tvořícím silnou stromovou topologii (čím blíže je větev ke kořenu, tím je tlustší, tj. její kapacita je vyšší).

Modifikace sítě, vydaná v roce 2003, je založena na sběrnici PCI-X 133 MHz a má latenci 1,22 μs.

Škálovatelné koherentní rozhraní (SCI). Jedná se o první technologii propojení vyvinutou speciálně pro clusterové výpočty, která byla uvedena do standardu. Architektura SCI je založena na spojení point-to-point, malých velikostech paketů a rozdělených transakcích. Standard IEEE 1596 byl publikován v roce 1992 a specifikoval fyzickou vrstvu sítě a vyšší pro síťově distribuovanou sdílenou mezipaměť koherentní (volitelně) paměť. Na vyšších úrovních standard popisuje distribuovaný návrh koherentní mezipaměti založený na ukazateli. Tento design umožňuje ukládání vzdálené paměti SCI do mezipaměti: kdykoli jsou data umístěná ve vzdálené paměti změněna, všechny řádky mezipaměti na všech uzlech, kde jsou uloženy, jsou neplatné. Ukládání vzdálené paměti SCI do mezipaměti zlepšuje výkon a umožňuje přímé, transparentní programování sdílené paměti.

To samozřejmě nejsou všechny technologie, na jejichž základě můžete postavit poměrně výkonný cluster. Clustery základní úrovně obvykle používají nespecializovaná řešení, která využívají tradiční síťové technologie, jako je Ethernet, ATM nebo Fibre Channel.

Trh dnes nabízí širokou škálu clusterů, lišících se typem a rychlostí procesorů, velikostí paměti sdílené uzly, technologií propojování uzlů, modely a programovacími rozhraními. Musíte však pochopit, že výsledek dosažený s jejich pomocí závisí do značné míry na funkcích aplikací, které na ně plánujete nasadit.

Základní návrhová skica OS
Uživatelský prostor Systémové procesy Uživatelské procesy
nepoužívání
middleware
Uživatelské procesy využívající middleware
Middleware
Systémové služby Uživatelské knihovny
Jádro Rozšíření jádra související s middlewarem
Souborové systémy/Komunikace/Programové rozhraní
Správce paměti Plánovač Ovladače
Vrstva abstrakce hardwaru
Hardwarové zdroje Časovače a přerušení
BERAN CPU Disky Síť Propojení clusteru Ostatní

(Mimochodem, z xboxu 360 nebo PS3 je možné sestavit levný a efektivní cluster, procesory jsou tam zhruba stejné jako Power a více než jednu konzoli koupíte za milion.)

Na základě toho zaznamenáváme zajímavé cenové možnosti pro vybudování vysoce výkonného systému. Samozřejmě musí být víceprocesorový. Intel pro takové úkoly používá procesory Xeon, zatímco AMD používá procesory Opteron.

Pokud je hodně peněz


Samostatně si všimneme extrémně drahé, ale produktivní řady procesorů založených na patici Intel Xeon LGA1567.
Špičkovým procesorem této řady je E7-8870 s deseti jádry o taktu 2,4 GHz. Jeho cena je 4616 $. Pro takové CPU vyrábí HP a Supermicro! osmiprocesorový! šasi serveru. Osm 10jádrových procesorů Xeon E7-8870 2,4 GHz s podporou HyperThreading podporuje 8*10*2=160 vláken, což se ve správci úloh Windows zobrazuje jako sto šedesát grafů zatížení procesoru, matice 10x16.

Aby se do skříně vešlo osm procesorů, nejsou umístěny přímo na základní desce, ale na samostatných deskách, které jsou zasunuty do základní desky. Na fotografii jsou čtyři desky s procesory nainstalovanými v základní desce (dva na každé). Toto je řešení společnosti Supermicro. V řešení HP má každý procesor svou vlastní desku. Náklady na řešení HP jsou dva až tři miliony v závislosti na obsahu procesorů, paměti a dalších věcech. Podvozek od Supermicro stojí 10 000 dolarů, což je atraktivnější. Supermicro navíc umí osadit čtyři koprocesorové rozšiřující karty do PCI-Express x16 portů (mimochodem ještě zbude místo pro adaptér Infiniband pro sestavení clusteru těchto), zatímco HP má pouze dvě. Pro vytvoření superpočítače je tedy atraktivnější osmiprocesorová platforma od Supermicro. Na následující fotografii z výstavy je superpočítač sestavený se čtyřmi GPU deskami.


Je to však velmi drahé.
Která je levnější?
Existuje ale vyhlídka na sestavení superpočítače na cenově dostupnější procesory AMD Opteron G34, Intel Xeon LGA2011 a LGA 1366.

Pro výběr konkrétního modelu jsem sestavil tabulku, ve které jsem pro každý procesor spočítal ukazatel cena/(počet jader*frekvence). Z výpočtu jsem vyloučil procesory s frekvencí pod 2 GHz a pro Intel - se sběrnicí pod 6,4GT/s.

Model
Počet jader
Frekvence
Cena, $
Cena/jádro, $
Cena/jádro/GHz
AMD





6386 SE
16
2,8
1392
87
31
6380
16
2,5
1088
68
27
6378
16
2,4
867
54
23
6376
16
2,3
703
44
19
6348
12
2,8
575
48
17
6344
12
2,6
415
35
13
6328
8
3,2
575
72
22
6320
8
2,8
293
37
13
INTEL





E5-2690
8
2,9
2057
257
89
E5-2680
8
2,7
1723
215
80
E5-2670
8
2,6
1552
194
75
E5-2665
8
2,4
1440
180
75
E5-2660
8
2,2
1329
166
76
E5-2650
8
2
1107
138
69
E5-2687W
8
3,1
1885
236
76
E5-4650L
8
2,6
3616
452
174
E5-4650
8
2,7
3616
452
167
E5-4640
8
2,4
2725
341
142
E5-4617
6
2,9
1611
269
93
E5-4610
6
2,4
1219
203
85
E5-2640
6
2,5
885
148
59
E5-2630
6
2,3
612
102
44
E5-2667
6
2,9
1552
259
89
X5690
6
3,46
1663
277
80
X5680
6
3,33
1663
277
83
X5675
6
3,06
1440
240
78
X5670
6
2,93
1440
240
82
X5660
6
2,8
1219
203
73
X5650
6
2,66
996
166
62
E5-4607
6
2,2
885
148
67
X5687
4
3,6
1663
416
115
X5677
4
3,46
1663
416
120
X5672
4
3,2
1440
360
113
X5667
4
3,06
1440
360
118
E5-2643
4
3,3
885
221
67

Model s minimálním poměrem je zvýrazněn tučnou kurzívou, podtrženo je nejvýkonnější AMD a dle mého názoru výkonově nejbližší Xeonu.

Můj výběr procesorů pro superpočítač je Opteron 6386 SE, Opteron 6344, Xeon E5-2687W a Xeon E5-2630.

Základní desky

PICMG
Na běžné základní desky není možné osadit více než čtyři dvouslotové rozšiřující karty. Existuje další architektura - použití backplane, jako je BPG8032 PCI Express Backplane.


Taková deska obsahuje rozšiřující karty PCI Express a jednu procesorovou desku, poněkud podobnou těm, které jsou nainstalované v osmiprocesorových serverech založených na Supermicro, o kterých jsme pojednávali výše. Ale pouze tyto procesorové desky podléhají průmyslovým standardům PICMG. Standardy se vyvíjejí pomalu a takové desky často nepodporují nejnovější procesory. Maximum takových procesorových desek aktuálně dostupných jsou dvě Xeony E5-2448L - Trenton BXT7059 SBC.

Takový systém bez GPU bude stát minimálně 5000 dolarů.

Hotové platformy TYAN
Za přibližně stejnou částku si můžete pořídit hotovou platformu pro sestavení superpočítačů TYAN FT72B7015. Tento může nainstalovat až osm GPU a dva Xeon LGA1366.
"Běžné" serverové základní desky
Pro LGA2011
Supermicro X9QR7-TF - tato základní deska může osadit 4 rozšiřující karty a 4 procesory.

Supermicro X9DRG-QF - tato deska je speciálně navržena pro montáž vysoce výkonných systémů.

Pro Opteron
Supermicro H8QGL-6F - tato deska umožňuje osadit čtyři procesory a tři rozšiřující karty

Posílení platformy pomocí rozšiřujících karet

Tento trh je téměř kompletně podchycen společností NVidia, která vyrábí kromě herních grafických karet také karty výpočetní. AMD má menší podíl na trhu a Intel Corporation na tento trh vstoupila relativně nedávno.

Charakteristickým rysem těchto koprocesorů je přítomnost velkého množství paměti RAM na desce, rychlé výpočty s dvojnásobnou přesností a energetická účinnost.

FP32, Tflops FP64, Tflops Cena Paměť, GB
Nvidia Tesla K20X 3.95 1.31 5.5 6
AMD FirePro S10000 5.91 1.48 3.6 6
Intel Xeon Phi 5110P 1 2.7 8
Nvidia GTX Titan 4.5 1.3 1.1 6
Nvidia GTX 680 3 0.13 0.5 2
Edice AMD HD 7970 GHz 4 1 0.5 3
AMD HD 7990 Devil 13 2x3,7 2x0,92 1.6 2x3

Špičkové řešení od Nvidie se nazývá Tesla K20X založené na architektuře Kepler. Jedná se o karty, které jsou instalovány v nejvýkonnějším superpočítači světa Titan. Nvidia však nedávno vydala grafickou kartu Geforce Titan. Staré modely měly snížený výkon FP64 na 1/24 FP32 (GTX680). Ale v Titanu výrobce slibuje docela vysoký výkon ve výpočtech s dvojnásobnou přesností. Řešení od AMD jsou také dobrá, ale jsou postavena na jiné architektuře a to může způsobit potíže při spouštění výpočtů optimalizovaných pro CUDA (technologie Nvidia).

Řešení od Intelu - Xeon Phi 5110P je zajímavé tím, že všechna jádra v koprocesoru jsou založena na architektuře x86 a pro běh výpočtů není potřeba žádná speciální optimalizace kódu. Mezi koprocesory mám ale nejraději relativně levný AMD HD 7970 GHz Edition. Teoreticky bude tato grafická karta vykazovat maximální výkon za cenu.

Lze připojit ke clusteru

Pro zvýšení výkonu systému lze několik počítačů sloučit do clusteru, který rozloží výpočetní zátěž mezi počítače zahrnuté v clusteru.

Používání běžného gigabitového Ethernetu jako síťového rozhraní pro připojení počítačů je příliš pomalé. Pro tyto účely se nejčastěji používá Infiniband. Hostitelský adaptér Infiniband je v porovnání se serverem levný. Například na mezinárodní aukci Ebay se takové adaptéry prodávají za ceny od 40 USD. Například adaptér X4 DDR (20Gb/s) bude stát s doručením do Ruska asi 100 USD.

Spínací zařízení pro Infiniband je přitom poměrně drahé. A jak již bylo zmíněno výše, klasická hvězda jako topologie počítačové sítě není tou nejlepší volbou.

Hostitelé InfiniBand však mohou být vzájemně propojeni přímo, bez přepínače. Pak se například tato možnost stává docela zajímavou: shluk dvou počítačů propojených přes infiniband. Takový superpočítač lze snadno sestavit doma.

Kolik grafických karet potřebujete?

V nejvýkonnějším superpočítači naší doby, Cray Titan, je poměr procesorů k „grafickým kartám“ 1:1, to znamená, že má 18688 16jádrových procesorů a 18688 Tesla K20X.

V Tianhe-1A, čínském superpočítači založeném na xeonu, je vztah následující. Dva šestijádrové procesory pro jednu grafickou kartu Nvidia M2050 (slabší než K20X).

Tento postoj přijmeme pro naše montáže jako optimální (protože je levnější). Tedy 12-16 procesorových jader na GPU. V tabulce níže jsou tučně vyznačeny prakticky možné možnosti a ty z mého pohledu nejúspěšnější podtržené.

GPU Jádra 6jádrový CPU 8jádrový CPU 12jádrový CPU 16jádrový CPU
2 24 32 4
5
3
4
2
3
2
2
3 36 48 6
8
5
6
3
4
2
3
4 48 64 8
11
6
8
4
5
3
4

Pokud systém s již zavedeným poměrem procesor/grafická karta dokáže zapojit další výpočetní zařízení, přidáme je, abychom zvýšili výkon sestavy.

Kolik to tedy stojí

Níže uvedené možnosti představují šasi superpočítače bez paměti RAM, pevných disků a softwaru. Všechny modely používají grafický adaptér AMD HD 7970 GHz Edition. Může být nahrazen jiným, jak to vyžaduje úloha (například xeon phi). Tam, kde to systém umožňuje, je jedna z edice AMD HD 7970 GHz nahrazena tříslotovou AMD HD 7990 Devil 13.
Možnost 1 na základní desce Supermicro H8QGL-6F


Základní deska Supermikro H8QGL-6F 1 1200 1200
CPU AMD Opteron 6344 4 500 2000
Chladič CPU Thermaltake CLS0017 4 40 160
Pouzdro 1400W SC748TQ-R1400B 1 1000 1000
Grafický akcelerátor Edice AMD HD 7970 GHz 3 500 1500
5860

Teoreticky bude výkon asi 12 Tflops.
Možnost 2 na základní desce TYAN S8232, cluster


Tato deska nepodporuje Opteron 63xx, proto se používá 62xx. V této možnosti jsou dva počítače připojeny do clusteru přes Infiniband x4 DDR pomocí dvou kabelů. Teoreticky bude rychlost připojení v tomto případě omezena na rychlost PCIe x8, tedy 32Gb/s. Používají se dva napájecí zdroje. Jak je mezi sebou zkoordinovat, najdete na internetu.
Množství Cena Součet
Základní deska TYAN S8232 1 790 790
CPU AMD Opteron 6282SE 2 1000 2000
Chladič CPU Noctua NH-U12DO A3 2 60 120
Rám Antec Dvanáct set černá 1 200 200
pohonná jednotka FSP AURUM PRO 1200W 2 200 400
Grafický akcelerátor Edice AMD HD 7970 GHz 2 500 1000
Grafický akcelerátor AX7990 6GBD5-A2DHJ 1 1000 1000
Adaptér Infiniband X4 DDR Infiniband 1 140 140
Infiniband kabel X4 DDR Infiniband 1 30 30
5680 (za blok)

Pro shluk takových konfigurací potřebujete dvě a jejich cena bude $11360 . Jeho spotřeba při plné zátěži bude cca 3000W. Teoreticky bude výkon až 31 Tflops.