Superpočítač

**Superpočítač** je všeobecné označenie pre veľmi výkonný počítač alebo počítačový systém. Hranica, kedy možno počítač označiť ako superpočítač nie je presne daná, v niektorých prameňoch sa hovorí o minimálne desaťnásobne vyššom výkone oproti bežne dostupným počítačom. 

Uplatňujú sa pri náročných výpočtoch, napríklad genetický výskum, fyzikálne modely(počasie, jadrové reakcie,...), ekonomické modely, internet a pod. Veľká časť superpočítačov bola vytvorená na konkrétnu úlohu, napr. Deep Blue ako prvý porazil človeka, Gariho Kasparova, v šachu.

Architektúra superpočítačov je postavená na jednoduchom princípe. Je to v podstate veľké množstvo spolupracujúcich jednoduchých elementov, ktoré vytvárajú zložité štruktúry. Jednotlivé časti sú prepájané podobne ako počítačové siete. Často sú použité proprietárne riešenia prepojení, nezriedka však štandardné technológie ako napríklad ethernet. V dnešnej dobe už dlhší čas úspešne fungujú projekty ako SETI@home alebo FOLDING@home využívajúce prepojenie počítačov, resp. PS3 cez internet. 

## Prehľad
### Dejiny
Prvé superpočítače boli vytvorené v šesťdesiatych rokoch Seymourom Crayom. Verejnosti boli sprístupnené prostredníctvom jeho firmy Cray Research. V osemdesiatych a začiatkom deväťdesiatych rokov vstupovali na trh so super počítačmi viaceré menšie firmy. Tie však boli začiatkom deväťdesiatych rokov vytlačené veľkými "tradičnými" spoločnosťami ako IBM a HP.

Nazývať nejaký výpočtový stroj superpočítačom môžeme len pri súčasnej špecifikácii doby, v ktorej bol navrhnutý a zostrojený. Dôvodom relatívnosti tohto prívlastku je rýchly vývoj v tejto oblasti, pretože stačí niekoľko rokov a bežné počítače sa výkonom plne vyrovnajú niekoľko rokov starému superpočítaču. Prvé Crayove stroje boli jednoduché a rýchle skalárne procesory, približne 10-krát rýchlejšie ako tie bežne používané v komerčnej sfére. V sedemdesiatych rokoch sa na trh dostávajú lacné stroje postavené na vektorových procesoroch od malých výrobcov s novou vlastnou architektúrou. Začína sa presadzovať paralelizácia, štyroch až šestnástich výpočtových jadier. Začiatkom deväťdesiatych rokov sa začala vlna enormnej paralelizácie. Toto viedlo k superpočítačom postavených na serverových procesoroch architektúr PowerPC, Intanium alebo x86-64. Spočiatku boli množstvom rovnocenných procesorov usporiadaných do navzájom prepojených štruktúr. Dnes nastáva éra hybridných riešení, v ktorých sa využívajú rôzne druhy procesorov na rôzne časti výpočtového procesu. Jej "zakladateľom" sa stáva IBM so systémom založeným na procesoroch CELL a Opteron pre Los Alamos National Laboratory. 

### Softvér
Softwarové nástroje na distribuované procesy štandardne obsahuje API ako MPI, PVM alebo opens source a to Beowulf WareWulf, openMosix. Tieto nástroje umožnia vytvorenie superpočítača z niekoľkých prepojených pracovných staníc. Technológia ZeroConf (Rendezvous/Bonjour) sa využívajú na vytvorenie jednoúčelových klastrov pre špecializovaný software ako napríklad Apple's Shake(úprava a tvorba obrazu). V tejto oblasti je free software na rovnakej úrovni ako komerčný.

### Využitie
Superpočítače sa dnes využívajú takmer vo všetkých vedných oblastiach. Používajú sa na tvorbu a testovanie modelov sledovaných alebo skúmaných javov. 
* modely kvantovej fyziky, počasie, predpovede počasia, modely organickej chémie
* kryptoanalýza, modely dopravnej situácie

## Hardware a software
Výpočtová sila superpočítačov so sebou prináša extrémnu zložitosť po hardwarovej aj softwarovej stránke. 
* **Napájanie a chladenie** sú najviditeľnejším problémom. Superpočítače sú zostavované z veľkého množstva paralelizovaných procesorov so spotrebou podobnou ako majú tie bežne dostupné na trhu. Vzhľadom na veľkosť celého systému je ich spotreba enormná, čo kladie veľké nároky na interné elektrické rozvody, ktoré musia byť chladené. V niektorých prípadoch sa využívajú supravodivé materiály v kombinácii s chladením na teplotu blízku absolútnej nule. Chladenie samotných procesorov je tiež náročná úloha. Dnes najvyužívanejšou metódou je vyžitie kvapalinového okruhu. Niekedy sa využíva dusíkové alebo héliové chladenie.
* **Veľký objem prenášaných dát** je ďalším problémom. Siete musia mať obrovskú dátovú priepustnosť a zároveň musia byť dostatočne rýchle. Ich rýchlosť je však limitovaná rýchlosťou šírenia elektromagnetického impulzu. Či už je to optická alebo kovová sieť, rýchlosť prenosu dát je limitovaná rýchlosťou svetla.
* **Vysoké frekvencie** rádovo v GHz sú ďalším problémom. Pri vysokých frekvenciách elektrický impulz stráca schopnosť šíriť sa aj po veľmi krátkych vodičoch. Je to spôsobené tým, že každý vodič sa stáva takmer dokonalou anténou, ak je jeho dĺžka rovná aspoň polke vlnovej dĺžky el. signálu v tomto vodiči. Preto je nutné všetky spoje realizovať pomocou vedení alebo vlnovodov, čo však kladie veľké nároky na konštrukciu a použité materiály. 
### Technológie prenesené zo sveta superpočítačom do "normálneho" sveta
* Vector processing 
* Kvapalinové chladenie 
* Non-Uniform Memory Access (NUMA)
* Striped disks(neskôr nazvané RAID) 
* Paralelné súborové systémy

### Operačné systémy
Súbor:Top500 OS.png

Ako je možné vidieť na obrázku, najväčší podiel v oblasti operačných systémov majú varianty systémov UNIX a Linux. Je to s spôsobené otvorenosťou týchto systémov a ich zrodom práve v tejto oblasti. 

### Programovanie
Paralelná architektúra si priamo vynucuje použitie špeciálnych metód a nástrojov, aby bolo možné maximálne vyžiť dostupný výkon. Často sa používajú špeciálne prekladače pre jazyk Fortran, ktoré generujú rýchlejšie kódy ako kompilátory jazykov C a C++. Programovací jazyk Fortran je priamo určený na vedeckotechnické výpočty. Pre rozvinutie paralelizmu sa používajú prostredia ako PVM, MPI alebo OpenMP.

## Architektúra moderných superpočítačov
Architektúra superpočítačov sa dnes ustálila. Prvých 10 najvýkonnejších superpočítačov v rebríčku TOP500 má rovnakú základnú architektúru. Každý z nich je klastrom MIMD(Multiple Instruction stream, Multiple Data stream) multiprocesorových zostáv, pričom každý z procesorov je architektúry SIMD(Single Instruction/Multiple Data. Superpočítače sa radikálne líšia počtom multiprocesorových jednotiek na klaster, počtom procesorov na jednu jednotku a počtom súčasne vykonávateľných inštrukcií na jeden SIMD procesor. 
* Počítačový klaster je súbor počítačov prepojených vysokorýchlostnou sieťou, pričom na každom z nich beží samostatné úloha operačného systému. 
* Multiprocesorový počítač je počítač, na ktorom beží jeden samostatný operačný systém a používa viac ako jeden CPU, pričom počet užívateľských aplikácií je iný ako počet procesorov. Procesory zdieľajú úlohy pomocou technológií SMP(Symmetric multiprocessing) a NUMA(Non-Uniform Memory Access).
* SIMD procesor spúšťa rovnaké inštrukcie na viac ako jeden súbor dát v tom istom čase. Sú to tzv. vektorové procesory. Ich výhodou je väčšia efektivita s tým spojená nižšia spotreba pri rovnakom výkone.
Hlavným problémom superpočítačov je paralelizácia a s tým spojené delenie výpočtových algoritmov, veľké dátové prúdy a podobne. Preto sú v mnohých prípadoch nahradzované klastrami počítačov štandardného dizajnu. Uľahčuje to programovanie, no znižuje dostupný výkon a efektivitu.

## Superpočítače so špeciálnym určením
Mnoho superpočítačov nebolo postavených aby uspokojovali potreby vedeckej komunity, 
ale pre riešenie konkrétnej úlohy. Napríklad:
* Deep Blue, vytvorený na hranie šachu, ako prvý stroj porazil v tejto hre človeka, Garryho Kasparova
* GRAPE, vytvorený pre úlohy astrofyziky a molekulárnej dynamiky
* Deep Crack, vytvorený na prelomenie DES šifrovania

## Najvýkonnejšie superpočítače súčasnosti
### Meranie výkonu superpočítačov
Výkon superpočítačov je meraný v jednotkách FLOPS(FLoating Point Operations Per Second), pričom sa využívajú SI násobky, napr. "TFLOPS" (1012 FLOPS, napíšeme jeden teraflops). Toto meranie je založené na benchmarku, ktorý robí operácie s veľkými maticami.

### Rebríček TOP500
Od roku 1993 sú superpočítače radené do rebríčka TOP500, podľa výsledku v benchmarku LINPACK. 

## Iné projekty
 

## Externé odkazy
* TOP500 Supercomputer list
* LinuxHPC.org Linux High Performance Computing and Clustering Portal
* WinHPC.org  Windows High Performance Computing and Clustering Portal
* Cluster Resources 
* Cluster Builder
* CDAC
* Microsoft Windows Compute Cluster Server (CCS)
* Infiscale Cluster Portal - Free GPL HPC Resources  
* Supercomputing Online Homepage for the World's High-Performance Computing, Networking & Storage Professionals
* Degree Project about best alternatives to implement HPC Cluster