Hlavní navigace

Povídky paralelistické: Linux

14. 8. 2003
Doba čtení: 5 minut

Sdílet

O hrdinném tažení tučňáků, kteří spojivše své síly vytáhli do boje proti komerčním paralelním systémům. Podrobněji se podíváme na systém Beowulf, zmíníme výhody a nevýhody linuxových klastrů a v závěru se zaměříme na dostupný hardware pro klastery.

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 Ether­netem. 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 multiproceso­rový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
Tabulka č. 464
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í.)

Cenové srovnání síťových technologií

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í.

skoleni

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

Autor článku

Michal Burda vystudoval informatiku a aplikovanou matematiku a nyní pracuje na Ostravské univerzitě jako odborný asistent. Zajímá se o data mining, Javu a Linux.