Beowulf
První klastr osobních počítačů použitý v oblasti HPC (High Performance Computing) vznikl roku 1994 ve výzkumném centru CESDIS pracujícím pro NASA. Thomas Sterling a Donald Becker tehdy propojili šestnáct počítačů s procesory Intel 486DX4 pomocí lokální sítě Ethernet do jediného výpočetního systému. Vzniklý paralelní systém nazvali Beowulf. Systém měl velký úspěch a jeho název se v dnešní době stal synonymem pro levné klastry postavené z komponent používaných v osobních počítačích.
Do doby vzniku Beowulfu bylo zaznamenáno mnoho pokusů o sestavení architektur založených na mikroprocesorech, ale ty vždy potřebovaly nějaký speciální hardwarový propojovací prostředek. Výzkumy v tomto směru nalezly mnoho nových myšlenek a nápadů, ale pokaždé vedly ke strojům, které se mezi ostatními nevyjímaly, a tak po čase upadly v zapomnění.
Beowulf byl propojen 10 Mbit/s Ethernetem. Jeho procesory ale byly příliš rychlé pro jediný Ethernet a switche byly tenkrát ještě příliš drahé. Aby byl systém vyvážený, přepsal tehdy Don Becker ovladače Ethernetu pro Linux, aby mohl být síťový provoz rozložen na dva nebo více Ethernetů zároveň (channel bonding). Použití obyčejných síťových komponent k propojení procesorů učinilo systém Beowulf jedinečným.
Úspěch Beowulfu tkvěl také v jeho kompatibilitě s budoucími verzemi. Díky robustnosti Linuxu, ostatního GNU softwaru a standardizaci předávání zpráv pomocí knihoven PVM a MPI měli programátoři jistotu, že jejich kód bude přenositelný na nové verze Beowulfích klastrů bez ohledu na to, kdo bude výrobcem procesorů nebo sítí.
Z prvotního klastru nazvaného Beowulf se zrodil tzv. Beowulf Project, který zastřešuje různé aktivity týkající se sestavování klastrů. Poskytuje svobodný software pro paralelní počítání na bázi Linuxu. Distribuce Beowulfu zahrnuje různá programátorská prostředí a knihovny. K dispozici je PVM, MPI a BSP. Implementována je meziprocesorová komunikace ve stylu Unix System-V a p-threads. Mnoho úsilí bylo věnováno zlepšení síťového subsystému jádra stejně tak jako podpory rychlých síťových zařízení.
Výhody a nevýhody linuxovských klastrů
Tak tedy nejdříve výhody:
- Každý stroj klastru může být kompletním systémem použitelným pro široké spektrum aplikací. Tedy v okamžicích, kdy není potřeba paralelního počítání, se může chovat jako obyčejná linuxovská stanice.
- Klastr je sestaven z komponent, které našly širokou základnu na trhu – jsou proto výrazně levnější než specializovaný hardware superpočítačů.
- Klastr se může proměnit ve velmi rozsáhlý systém. S relativně malým úsilím lze propojit stovky nebo dokonce tisíce strojů.
- Nahradit zkažený stroj v klastru je naprosto triviální v porovnání s opravením multiprocesorového počítače.
Nevýhody:
- Až na nějaké výjimky není síťový hardware přizpůsoben pro nasazení v paralelních strojích. Latence je velmi vysoká a propustnost zase velice nízká v porovnání s multiprocesorovými stroji. Například latence (latency) multiprocesorů není obvykle vyšší než několik mikrosekund narozdíl od stovek až tisíců mikrosekund pro klastry. Propustnost (bandwith) se u multiprocesorů pohybuje často nad 100 MB/s; ačkoliv nejvýkonnější síťový hardware (např. Gigabit Ethernet) poskytuje srovnatelnou rychlost, často používané síťové komponenty klastrů jsou 10 až 100krát pomalejší.
- Dalším problémem je správa klastrů. Každý uzel je zodpovědný za chod své vlastní kopie jádra OS – uzly jsou obecně na úrovni jádra nezávislé. Z toho pramení problémy při instalaci a konfiguraci uzlů. (Opakovat tutéž instalační proceduru na stovce počítačů je neúnosné.)
- Dosud existuje málo nástrojů, které by s klastrem pracovaly jako s jednolitým systémem. Například obyčejný příkaz ps zobrazí jen procesy běžící na aktuálním uzlu, ne všechny procesy běžící na celém klastru linuxovských strojů.
Hardware k propojení strojů do klastru
Následující tabulka shrnuje některé možné prvky sítě a jejich základní parametry. Poznámky k sloupcům:
- Podpora Linuxu – jestliže chceme vytvářet klastr, musíme hledět v první řadě na to, aby veškerý použitý hardware byl touto platformou podporován
- Maximální propustnost (maximum bandwith) – číslo, o které se každý nejvíce zajímá :-). Je to hodnota udávající, jaké množství informací lze zařízením protlačit.
- Minimální latence – číslo, o které by se každý nejvíce zajímat měl (alespoň co se týče klastrů). Latencí lze chápat časový údaj potřebný k odeslání nejmenší zprávy. Cítíme, že latence bude hrát v paralelních strojích významnou roli – zprávy mezi procesory obvykle budou malé, ale bude jich hodně, a tak je třeba, aby byly odbaveny v co nejkratším čase.
- Rozhraní – interface, jakým se síťové zařízení připojuje k počítači
Název | Podpora v Linuxu | Max. propustnost | Min. latence | Rozhraní |
Ethernet | ovladače v jádře | 10 Mb/s | 100 mikrosekund | PCI |
Fast Ethernet | ovladače v jádře | 100 Mb/s | 80 mikrosekund | PCI |
Gigabit Ethernet | ovladače v jádře | 1000 Mb/s | ? | PCI |
Myrinet | knihovna | 1280 Mb/s | 9 mikrosekund | PCI |
Parastation | HAL nebo knihovna socketů | 125 Mb/s | 2 mikrosekundy | PCI |
PLIP (Parallel Line Interface Protocol, LapLinkový kabel) | ovladače v jádře | 1,2 Mb/s | ? (nic slavného to nebude :-) | paralelní port (SPP) |
SLIP | ovladače v jádře | 0,1 Mb/s | 1000 mikrosekund | RS232C |
Cenové srovnání jednotlivých technologií orientačně zobrazuje následující graf: (Graf byl tvořen z orientační ceny na jeden stroj. Při vybavování desítek strojů stejnou technologií se rozdíly v celkové ceně ještě více prohlubují.)
Ethernet
Síťový standard posledních let. Switchované propojení poskytuje slušný výkon za více než přijatelnou cenu. Pro rozumné paralelní počítání se však příliš nehodí.
Fast Ethernet
Pro využití v klastrech je již vhodnější. NASA experimentovala se zvýšením výkonu zavedením několikanásobného Fast Ethernetu.
Gigabit Ethernet
Ukazuje se, že Gigabit Ethernet jednou bude levnou masovou záležitostí. Doposud je však veškerý hardware stále ještě dost drahý.
Myrinet
Myrinet je LAN (Local Area Network) navržená také jako system area network (SAN), tedy síť počítačů propojená do paralelního systému. LAN a SAN verze používají různá fyzická média o mírně rozdílných charakteristikách. Pro účely klastrů se lépe hodí verze SAN. V současné době je Myrinet v propojování počítačů do klastrů favoritem.
Firma Myricom, tvůrce Myrinetu, v současnosti dodává kromě samotných PCI karet komplexní síťové vybavení: Myrinet switche (až 16 portů) nebo Myrinet „Network in a Box“, což je zařízení samostatně realizující sesíťování až 128 uzlů a až deseti tisíců počítačů, pokud použijeme těchto zařízení několik. Myricom uvádí, že dodávaný software se postará o automatickou konfiguraci sítě.
Parastation
ParaStation je univerzitní projekt, který si dal za cíl vytvořit PVM-kompatibilní nízko latentní síť. Parastation je vyráběna ve verzi PCI v kooperaci se společností Hitex.
PLIP a SLIP
Vlastně za cenu obyčejného LapLinkového kabelu dovoluje PLIP (Parallel Line Interface Protocol) propojit dva linuxové počítače mezi sebou s využitím standardního softwaru na bázi socketů. S ohledem na propustnost a latenci není PLIP seriózní síťovou technologií. Nicméně takřka nulové náklady a softwarová kompatibilita jsou užitečné vlastnosti alespoň pro hraní.
Podobně je tomu i u protokolu SLIP (Serial Line Interface Protocol), který, i když byl původně vymyšlen za jiným účelem, dovoluje zřídit socketovou komunikaci přes standardní sériový RS232 port.
Odkazy:
Myricom
Nejrychlejší evropský linuxový klastr Parnass 2
Beowulf
Beowulf Underground
Linux Cluster HOWTO
Beowulf HOWTO