Hlavní navigace

MOSIX - Počítejte rychleji!

Michal Ludvig

Potřebujete hóóóódně silný počítač, ale vaše kapesné nestačí na zakoupení mnohaprocesorového SuperUltra Sextium 8? Zkuste se porozhlédnout, zdali se ve vašem okolí nevyskytuje pár nevyužitých strojů, z nichž by bylo možné postavit výpočetní cluster.

Existují aplikace, kde v první řadě záleží na hrubé výpočetní síle. Ať už chcete hledat mimozemšťany v projektu Seti@Home, luštit cizí hesla jedním z nepřeberného množství k tomuto účelu vytvořených programů, či simulovat následky výbuchu atomové bomby nad některým velkým městem, může se vám hodit hóóóódně silný počítač. Pokud vám ale kapesné nestačí na zakoupení mnohaprocesorového SuperUltra Sextium 8, zkuste se porozhlédnout, zdali se ve vašem okolí nevyskytuje pár nevyužitých strojů, z nichž by bylo možné postavit výpočetní cluster.

Co je to cluster

Česky je možné slovo cluster přeložit jako seskupení nebo shluk. Ve výpočetní technice se tento termín používá pro takovou konfiguraci několika počítačů, která se navenek tváří a chová jako jeden jediný stroj.

High-availability clusters (vysoce dostupné clustery)
Používají se v případě, kdy je nezbytné zajistit nepřetržitý provoz určité služby bez ohledu na možné hardwarové či softwarové problémy, které mohou potkat jednotlivé stroje. Tímto typem se zde nebudeme zabývat. Více informací můžete získat například z Linux Journalu nebo přímo na Linux-HA.
Computational clusters (výpočetní clustery)
Použití tohoto typu jsem naznačil již v úvodu. V zásadě jde o to, že za relativně málo peněz získáte poměrně slušný výpočetní výkon. V tomto seriálu vám ukážu, jak na to. Samozřejmě za použití Linuxu.

Jak to funguje

Abyste mohli efektivně využívat výpočetní cluster, potřebujete mít nutkání vyřešit takovou úlohu, kterou lze dobře paralelizovat, tedy rozdělit na spoustu malých úloh podobného typu, které je možné zpracovávat relativně samostatně, nezávisle jednu na druhé. Je to podobné, jako kdybyste měli provést jazykovou korekturu obsáhlé kuchařky – můžete jí buďto přečíst celou sami (to je ta celá úloha), nebo si práci rozdělit zvlášť na čtení receptů na polévky, zvlášť na hlavní jídla bez masa, hlavní jídla s masem a nakonec nezapomenete opravit ani kapitolu o moučnících. Bohužel si tím moc nepomůžete, protože opět musíte přečíst celou kuchařku. Naštěstí však máte k dispozici cluster jazykových korektorek (pozn. korektorky: nebo jednu viceprocesorovou johanku :) – johanka), a tak každé z nich můžete poslat (migrovat) jednu kapitolu. Celkový čas na opravení celé knihy bude pochopitelně kratší, protože kapitoly „se budou číst“ zároveň. V modelovém případě čtyř kapitol a čtyř korektorek to stihnete za čtvrtinu původního času. Každou korektorku můžeme po vzoru počítačové terminologie nazývat node (česky uzel). Vydavatel však zadal práci nám (jsme master node, pro zadanou úlohu pak home node), takže o nějakých korektorkách nemusí mít vůbec tušení. Stejně tak to chodí v případě reálného clusteru, kdy všechny úlohy zadáváme jednomu master nodu, který je potom rozešle (migruje či jinak distribuuje) ostatním uzlům.
 
V praxi se však můžete setkat s následujícími problémy:

Rozdílná rychlost uzlů
Jedna z korektorek může mít kurz rychločtení, zatímco druhá si zrovna rozšlápla své brýle s osmi dioptriemi, a protože teď musí číst lupou, jde jí to samozřejmě pomalu.
Rozdílná zátěž uzlů
Kapitol v kuchařce můžeme nakonec mít šest, ale korektorky máme jen čtyři. I v případě, že jednu zpracujeme sami (ano, i master node musí někdy pracovat), budeme se šestou snažit vnutit některé z korektorek. Ta rázem bude mít dvojnásobnou zátěž oproti ostatním.
Rozdílná rychlost komunikace
Samozřejmě je rozdíl mezi spoluprací s korektorkou, která bydlí ve stejném domě jako my a práci jí můžeme donést osobně, a s jinou, která bydlí v Austrálii a práci nepřijímá jinak než dodanou poštovním holubem. Situace se může poněkud zkomplikovat, pokud ta australská je výjimečně rychlá a odvádí mimořádně kvalitní práci, zatímco ta, která bydlí o dvě patra pod námi, je ona již zmíněná s rozšláplými brýlemi a lupou. V takovém případě nás čeká poměrně složitá analýza, abychom zjistili, kam se vyplatí ten který úkol odeslat.
Výpadek uzlu
Pokud si naše korektorka zlomí nohu, není to taková tragédie, jako kdyby si vypíchla obě oči. V takovém případě by byla nucena poloopravený text operativně odmigrovat k jiné korektorce z našeho clusteru. Kterou vybere, záleží zejména na předchozích třech faktorech. Ať už je vybrána kterákoliv, tak ta práci převezme a bude v ní pokračovat.
Větší problém by nastal, kdyby naši korektorku odnesli mimozemšťani. Tím bychom o její (možná již téměř hotovou) práci přišli a museli bychom pověřit některou ze zbývajících kolegyň, aby to přečetla znovu.
Někdy se bohužel může stát, že unesená korektorka opravovala originál rukopisu, od kterého nemáme žádnou kopii, takže celá její práce je ztracena a budeme muset vydat kuchařku bez kapitoly o moučnících. V některých úlohách toto kupodivu nevadí, obvykle však ano.

Dále je vhodné výpočetní clustery rozdělit na dva typy, podle způsobu, jakým se jeho uzly dělí o práci.

Cluster na úrovni aplikace
Budete mít aplikaci, kde s pomocí speciálních funkcí (např. z knihovny PVM – Parallel Virtual Machine) budete řídit distribuci a komunikaci jednotlivých úloh sami. To je právě případ našeho korektorského clusteru.
Cluster na úrovni operačního systému
Nebudete se o nic starat, jednoduše se paralelizujete a budete doufat, že nejvhodnější rozmístění po uzlech za vás zařídí váš OS. Pokud to bude Linux s podporou Mosixu v jádře, máte šanci, že k tomu opravdu dojde. V dalším textu se již budeme zabývat jen tímto typem.

Za domácí úkol si připravte síť – pro začátek by mohlo stačit pět počítačů. Na každý z nich nainstalujte Linux v takové distribuci a verzi, která umí pracovat s jádrem řady 2.4. Pokud možno je propojte minimálně 100Mbps ethernetem a nakonfigurujte na nich síť tak, aby na sebe vzájemně viděli. V příštím dílu si ukážeme, jak z těchto počítačů vytvořit výpočetní cluster.

Našli jste v článku chybu?

5. 10. 2001 8:40

Michal Ludvig (neregistrovaný)

Ja tedy v Jave neprogramuji, ale pokud pojem thread v Jave znamena to same jako thread v systemu obecne (tedy vice vlaken jednoho procesu), tak se obavam, ze to migrovat nepujde. Migrovat mohou jen samostatne nezavisle procesy, nikoliv thready. Samozrejme ale muze odmigrovat cely proces se vsemi thready na jiny uzel, v tom by nemel byt problem.

26. 9. 2001 10:35

HKou (neregistrovaný)

Zkousel jste nekdo migrovat Java thready (zrejme pouze jen native).Ja jen, jestli se mam do toho vubec poustet.

Vitalia.cz: Vady očí, o kterých nevíme, jsou nejhorší

Vady očí, o kterých nevíme, jsou nejhorší

DigiZone.cz: Co chtějí operátoři při přechodu na DVB-T2?

Co chtějí operátoři při přechodu na DVB-T2?

Měšec.cz: Jak levně odeslat balík přímo z domu?

Jak levně odeslat balík přímo z domu?

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

DigiZone.cz: Rádio Šlágr má licenci pro digi vysílání

Rádio Šlágr má licenci pro digi vysílání

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Podnikatel.cz: Udávání kvůli EET začalo

Udávání kvůli EET začalo

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Root.cz: Certifikáty zadarmo jsou horší než za peníze?

Certifikáty zadarmo jsou horší než za peníze?

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

Vitalia.cz: Když přijdete o oko, přijdete na rok o řidičák

Když přijdete o oko, přijdete na rok o řidičák