Superpočítače

Superpočítače
Sdílej
 
Ze sci-fi filmů či románů známe obrovské počítače, které vše umějí spočítat, vše ovládají nebo mají lidské vlastnosti. Skutečnost je poněkud méně efektní, přesto hodně zajímavá. Existující superpočítače skutečně řeší mnoho velmi důležitých problémů dnešní civilizace.



Foto Profimedia.cz a archiv Pavel Vachtl
Ilustrace Jan Jiříček a Štěpán Janík

Se skutečným superpočítačem většina z nás pravděpodobně nepřijde přímo do styku. Snad s výjimkou turistické výpravy do tzv. datacentra nebo zadávání práce na dálku (např. různé internetové on-line služby Googlu).

1. Co je superpočítač, k čemu slouží a jak měříme jeho výkon?


Superpočítače jsou nejvýkonnější třída počítačů na světě. Jejich výkon se má k výkonu našich stolních počítačů asi jako velikost velryby či veleještěra k velikosti blechy. V praxi se jimi konkrétně rozumějí stroje či celé složené systémy zařazené do "horních 500" (www.top500.org), který vytvářejí už 13 let pracovníci univerzity v německém Mannheimu a některých amerických institucí - obnovují ho každých půl roku.

Tyto významem a často i fyzickými rozměry gigantické stroje obsahují zpravidla tisíce až desetitisíce spřaženě pracujících procesorů a zabírají celá patra budov, někdy dokonce i budovy celé. Používají se pro numerická řešení těch matematicky nejnáročnějších výpočtů, jako jsou např. předpovědi počasí, vývoj globálního klimatu, přesné fyzikální, průmyslové, genetické, geofyzikální a biochemické modelování nebo simulace plazmatu či jaderných výbuchů. Superpočítač nemusí mít nutně všechny své součásti fyzicky zcela pohromadě, většinou dnes jde o rozsáhlý shluk (anglicky cluster) menších jednotek či počítačových/procesorových uzlů, spojených pomocí rychlé (zejména lokální) sítě.

Umíme si otestovat, jak rychle vynásobí či sečte dvě čísla kapesní kalkulačka nebo program na našem PC. Jak však změřit rychlost počítačového monstra? Odborníci nejen ze žebříčku TOP500 dokážou odpovědět i na tento problém. Byl vytvořen standardní soubor rozsáhlých úloh, obsahující řešení typově různých a vzorových soustav lineárních rovnic o velmi mnoha neznámých veličinách (s názvem LINPACK), u kterých víme, kolik operací s desetinnými čísly (čísla, skládající se z více platných, tj. nenulových, čísel za desetinnou čárkou) obsahují.

Tento test se spustí a změřený výpočetní výkon se pak udává v násobkách jednotky zvané FLOPS (počet elementárních operací s čísly s pohyblivou desetinnou řádkou za sekundu - FLoating point Operations Per Second, ty jsou prováděny procesory počítače). V praxi v oblasti (super)počítačů potkáváme výkony v řádech gigaFLOPS (deset na devátou čili miliarda FLOPS), teraFLOPS (deset na dvanáctou čili bilion FLOPS) či petaFLOPS (deset na patnáctou čili trilion FLOPS), při řešení konkrétních programů.

2. Více procesorů více zmůže, dělba práce, paralelní počítače


Víme, jak podstatně se v minulých letech zrychlovaly procesory pro PC. Zvyšovaly se jejich frekvence a tím i rostly jejich výpočetní výkony. Typický dnešní špičkový procesor Pentium dosahuje výkonu několika gigaFLOPS, což je více, než "svedly" některé superpočítače před 15 až 20 lety. Dnes však existují různé technologické překážky v dalším výrazném zrychlování pracovních frekvencí (taktu) procesoru. Tímto přímočarým směrem cesta nevede. Avšak vždy je možnost nechat vedle sebe pracovat procesorů více, přičemž se jim jednotlivé části úlohy (či operace) vhodně přidělí, pokud to jde.

Mnoho pomalejších procesorů, které pracují paralelně, tedy zastane v principu stejnou práci, jako kdyby na úloze pracoval jediný supersilný procesor, pracující v jednoduchém postupném, tzv. sériovém režimu. Někdy je jistá paralelnost zpracování dat obsažena už na úrovni jednoho procesoru, takže během jednoho cyklu provede procesor instrukcí několik, popř. paralelně zpracuje více "proudů" či "úseků" dat.

Oblast superpočítačů je tedy spjata s koncepcí víceprocesorového a paralelního počítání. Některé formy pronikly i do sféry běžných PC. Procesory se dvěma či čtyřmi procesorovými jádry (např. Intel Core 2 Duo) jsou dnes běžnou součástí stolních počítačů. Jedním z nejvyspělejších velkosériových čipů současnosti je procesor IBM Cell, používaný v herní konzoli Sony Playstation 3, který obsahuje jedno plus osm jader na jediném čipu.


Rozlišujeme 4 druhy výpočetního paralelismu


1 Paralelismus na úrovni bitů (prvků binární informace 0,1) se realizuje tím, v kolika paralelních proudech data tečou uvnitř počítače (16 bitů, 32, 64 atd.).

2 Paralelismus na úrovni instrukcí (tzv. datový pipelining) nastává tehdy, když se v rámci jednoho cyklu/taktu procesoru zpracovává více instrukcí najednou.

3 Paralelismus na úrovni dat znamená, že je možno na více datech stejného druhu provozovat současně stejné operace.

4 Paralelismus na úrovni úloh představuje rozložení programu na relativně nezávislé úlohy, spouštěné na rozdílných "porcích dat (příkladem jsou téměř zcela distribuované úlohy v rámci dobrovolnických projektů BOINC - např. SETI@Home).

Programování paralelních strojů bývá složitější než programování u běžných malých a sériových počítačů. Závisí to hodně i na typu úlohy a na uspořádání počítače - jeho architektuře.
Foto

Prvním paralelním superpočítačem v historii byl americký Illiac IV (dokončen 1974). Slavnou a dlouhou kapitolou historie byly v 70., 80. a 90. letech tzv. vektorové počítače firmy Cray, vhodné pro velkou část vědecko-technických výpočtů. Po roce 2002 stroje na bázi vektorových procesorů, zpracovávajících najednou stejným způsobem celé skupiny čísel, kvůli svým omezením zřetelně ustoupily čistě úlohově-paralelním koncepcím. Ty oplývají rozmanitostí a komplikovaností jak hardwarovou architekturou, tak softwarovými řešeními paralelních algoritmů.


3. Paralelní počítače a jejich architektury - jak tečou data


Z roku 1966 pochází základní klasifikace, která dělí počítače na 4 základní typy podle paralelity zpracování dat - SISD, MISD, SIMD a MIMD (M = multiple, S = single, I = instruction, D = data).

Typ MISD nemá praktický smysl (současné provádění více operací na jedné datové proměnné), všechny paralelní počítače patří buď k typu SIMD, nebo MIMD.

K minulosti dnes patří i vektorové počítače, obsahující paralelismus typu datového pipeliningu už v rámci jednoho procesoru s tzv. vektorovými registry. Jsou "šity na míru" vědeckým a inženýrským úlohám, které operují s daty ve tvaru vektorů a matic. Jsou volně řazeny k typu SIMD se sdílenou pamětí. SIMD počítač s distribuovanou pamětí je představován polem procesorových elementů (každý má k sobě asociovanou paměťovou buňku).

Další důležitá klasifikace paralelních systémů s více procesory se týká vztahu procesorů k uspořádání jejich operační paměti/pamětí.

U typu MIMD existují 2 mezní, "čistá" řešení:


1. S pamětí společnou-centrální, kdy procesory komunikují rovnocenně s jedinou sdílenou pamětí (mluví se zde o symetrickém multiprocesingu - SMP (také Shared Memory Processing).

2. Když má každý procesor vyhrazen vlastní, k němu "přidružený" paměťový prostor. Pak se mluví o systémech s distribuovanou pamětí nebo o masivně paralelním procesingu - MPP. Zde je nutná další komunikace mezi procesory.

3. Existují však i různé smíšené, hybridní systémy, kde např. každý procesor komunikuje častěji s bližším než se vzdálenějším paměťovým prvkem, ale není od žádného odříznut, a kde dochází k pravidelné synchronizaci malých lokálních pamětí s pamětí hierarchicky nadřazenou. Nebo jde o shluky/clustery SMP uzlů či serverů, které kombinují výhody obou "světů". Ty představují hierarchický systém uzlů lokálních pamětí a skupin procesorů kolem nich.

Téměř všechny dnešní nejvýkonnější počítače jsou v principu clustery výkonných SMP uzlů či serverů nebo typu MPP, na nichž globálně běží více instancí operačního systému najednou (většinou Linux nebo UNIX). V praxi však hranice mezi všemi těmito typy není vždy úplně ostrá a někdy se mluví o MPP clusterech či o speciálních clusterech. Např. ohledně současného nejvýkonnějšího stavebnicového systému IBM Bluegene/L či /P nelze zcela přesně rozlišit, jde-li o klasicky specifikovatelný cluster, MPP, či o novou kategorii samu pro sebe.


4. Nejvýkonnější stroje současnosti a blízké budoucnosti


V zásadě je potřeba od sebe odlišit kompaktní stroje, které jsou schopny řešit úlohy, obsahující velké množství vnitřních vazeb, a distribuované systémy, jejichž jednotlivé úlohové malé dávky je možno řešit jen nezávisle na sobě (a kde se proto nedají ani spustit testy jako LINPACK). Mezi kompaktními systémy je dnes na špičce energeticky velmi úsporný systém IBM BlueGene/L v Lawrence Livermore National Laboratory, s výkonem 480 teraFLOPS. Během nejbližší doby se očekává, že bude spuštěn jeden či více kompaktních systémů s výkonem kolem 1 petaFLOPS (1000 teraFLOPS).

Horkým kandidátem je projekt IBM Roadrunner, který má být vystavěn na bázi výkonných procesorů Cell, použitých v Playstation 3 (řada nadšenců si také z desítek PS3 dělá doma vlastní propojené výpočetní minicentrum). Výkon 1 petaFLOPS byl v rámci distribuovaných systémů už překročen loni v rámci dobrovolnického internetového projektu Folding@HOME (zkoumání úlohy proteinů zejména v oblasti lidských nemocí), hlavně zásluhou statisíců připojených konzolí Playstation 3. (Dalšími distribuovanými projekty jsou třeba zkoumání změn klimatu, hledání nebezpečných asteroidů, lámání šifer, boj proti chudobě v Africe apod.)

Zároveň se řada velkých amerických datacenter postupně propojuje do formy tzv. TeraGridu (kvazisuperpočítač propojený přes rychlý internet) a zde se také očekává překonání petaflopové hranice. Celkový instalovaný výpočetní výkon lidstva se nyní pohybuje kolem 7-8 petaFLOPS a vypadá to, že se může každých 18 až 24 měsíců zdvojnásobovat. V roce 2013 má být také spuštěn projekt BlueBrain, jehož cílem je v základních rysech simulovat procesy v lidském mozku.


Mezi země oplývající superpočítačovým potenciálem nadále patří USA následovány Japonskem, Německem, Francií a Velkou Británií. Kromě západní Evropy je vidět jistý vzestup také v Asii (Čína, Indie, Jižní Korea) a v Rusku. Bohužel Česká republika se momentálně nemůže pochlubit žádným zástupcem v žebříčku TOP500, protože náš nejvýkonnější počítač v dějinách - Amálka (Ústav fyziky atmosféry Akademie věd ČR) zvládá něco přes 4 teraFLOPS a nejslabší člen žebříčku TOP500 má výkon přibližně 6 teraFLOPS.



IBM Bluegene/L


Jedny z nejvýkonnějších superpočítačů současnosti jsou vytvořeny z modulů jakési „stavebnice“ firmy IBM - masivně paralelního systému BlueGene/L. Absolutní jednička žebříčku TOP500 pracuje v americké strategické laboratoři Ministerstva energetiky USA, v Lawrence Livermore National Laboratory, má výpočetní výkon asi 480 teraFLOPS a obsahuje momentálně neuvěřitelných 212.992 procesorů typu PowerPC, 73728 GB paměti RAM a má spotřebu přes 1,5 MWattu elektrické energie.

V první desítce jsou celkem čtyři zástupci stavebnice Bluegene/L a /P. (na jednom konkrétním snímku je však slabší stroj JUBL z německého výpočetního centra JÜLICH, s 16,348 procesory a výkonem 45.8 teraFLOPS, z 28. příčky).

IBM Bluegene/P


Stavebnicový systém IBM BlueGene/P je mladší a také relativně (na jeden díl stavebnice) silnější bráška systému IBM BlueGene/L. Na jeho bázi je postaven i dnes druhý nejsilnější počítačový systém na světě a první v Evropě - JUGENE z německého výpočetního centra JÜLICH, s 65536 procesory PowerPC. JUGENE má výkon 167 teraFLOPS.

Beowulf clustery (shluky)


Nechce-li se uživatelům vynakládat příliš peněz, je zde možnost vytvořit si středně silný počítačový systém pomocí stovek či tisíců běžných PC, propojených přes lokální síť. Toto lidové řešení, poháněné většinou operačním systémem typu Linux, se nazývá Beowulf cluster. Má však své výkonnostní meze, špičkovému a speciálně odladěnému firemnímu (proprietárnímu) systému se rovnat nemůže, avšak mnohdy potěší.

Počítače Cray


Vektorové počítače (s tzv. vektorovými procesory), vytvořené slavným konstruktérem Seymourem Crayem, byly absolutním symbolem světa superpočítačů dlouho - po celá 70., 80., a 90. léta 20. století. Důstojnou pozici si sice udržely dodnes, ale jejich kralování bylo ukončeno nástupem gigantů od firem IBM, SGI (Silicon Graphics), HP a Dell v posledních sedmi 7 letech. Systémy typu Cray SX1 byly na špičce v letech cca 2000-2002. I dnes jsou tři zástupci značky Cray (XT3 a XT4) v Top 10 všech superpočítačů.

Distribuované počítání, BOINC, Playstation


Zajímavým druhem dělby práce mezi procesory počítačů je distribuce částí úloh přes internet. Zná to i leckdo z nás, pokud na svém počítači "prohání" některou z úloh projektu BOINC, např. známý projekt SETI@home (analýza vesmírných signálů).

Miliony počítačů běžných uživatelů-dobrovolníků pak dělají v jistém smyslu pro některé úlohy stejnou práci jako jeden velký superpočítač, rozprostřený po celé planetě. Zvláštností je úloha herní konzole Playstation 3 v projektu FOLDING@home, který se zabývá modelováním generování (exprese) proteinů v těle. Uvnitř této konzole je totiž čip, který obsahuje celkem 1+6 volných procesorových jader (procesor Cell od IBM), a pakliže výkon normálního dnešního PC činí několik gigaFLOPS, Cell podává pro jisté úlohy výkon ještě nejméně desetkrát větší. Celkový výkon počítačů a konzolí, počítajících loni FOLDING@home dokonce na čas překonal hranici jednoho petaFLOPS (čili tisíc teraFLOPS = milion gigaFLOPS). Není divu, že se připravují další projekty využívající procesorů Cell ve velkém.


Modelování srážky dvou černých děr


Klasická úloha pro superpočítače je i modelování srážky dvou černých děr za vzniku mohutných gravitačních vln a jiné astrofyzikální úlohy, např. evoluce a srážky galaxií.


Modelování proudění kapalin a plynů


Podrobné modelování proudění kapalin a plynů, simulace dynamiky plazmy, dějů v atmosféře, oceánech a prognózy změn klimatu Země - to vše bychom si dnes bez superpočítačů vůbec neuměli představit.


Modelování ve světě molekul a atomů


Důležitou oblastí superpočítačového modelování je mikrosvět - svět molekul a atomů, svět chemických reakcí, molekulové biologie, molekulární medicíny, nanotechnologie, materiálového inženýrství apod. Poprvé v historii si umíme výsledky těchto procesů virtuálně namodelovat dříve, než je spustíme v reálném světě.



Superpočítače v průmyslu

Hlavními uživateli superpočítačů již delší dobu nejsou kupodivu ani vojáci, ani vědci a univerzity, ale světové průmyslové firmy a jejich inženýři, kteří se v tvrdém konkurenčním boji snaží vylepšit své výrobky, ať už jde o obyčejné potrubí, automobily, stavby, stroje, továrny, lodě, letadla či rakety a raketoplány atd.

SGI Altix


Třetím nejvýkonnějším superpočítačem na světě je momentálně systém SGI Altix ve výpočetním středisku v Novém Mexiku, s 14 336 čtyřjádrovými procesory Intel Xeon Quad Core, výkon 127 teraFLOPS. Jeho pomalejší bráška (SGI Altix Columbia) o výkonu 52 teraFLOPS pracuje ve středisku NASA Ames.


Kasparov a šachový počítač Deep Blue (IBM)


Deep Blue sice nikdy nepatřil číselným výkonem k superpočítačům, ale byl dostatečně vyspělý a specializovaný na to, aby Kasparova v roce 1997 v sérii šesti partií porazil. Tak byl poprvé lidský šachový mistr světa poražen počítačem. Po skončení duelu byl Deep Blue rozmontován.

Klasik superpočítačů

Seymour Cray byl významný a originální architektem řady z prvních superpočítačů (zejména vektorových). Založil vlastní společnost Cray Research (1972), která prodala během 20 let 2000 superpočítačů. Téměř 30 let (zhruba 1965-1995) bylo jasné, že odpověď na otázku: Která firma vyrábí nejrychlejší počítače na světě? musí znít: Ta, ve které teď právě dělá Seymour Cray. Jeho počítače luštily nejobtížnější šifry, věrně simulovaly jaderné exploze (i díky tomu mohly být v roce 1963 mezinárodně zakázány všechny nadzemní jaderné zkoušky) a vývoj počasí, počítaly složité úlohy z oblasti fyziky a inženýrství. Není proto divu, že dlouho udávaly tón celé oblasti superpočítačů a mnohé z jejich konstrukce se stalo vzorem pro řadu dalších.


Web:


(http://hpcinfo.cz)

český novinkový server o HPC

(http://www.top500.org)

aktualizovaný přehled nejvýkonnějších počítačů světa

(http://www.research.ibm.com)


/bluegene/ BlueGene