[ Skip to the content ]

Institute of Formal and Applied Linguistics Wiki


[ Back to the navigation ]

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
grid [2008/10/29 11:31]
bojar ukazka volani a lepsi
grid [2011/06/27 11:17]
ufal Aktualizace informací o výpočetním clusteru
Line 3: Line 3:
 Cluster (shluk) neboli grid (mříž, síť) je skupina počítačů, na kterých běží software pro automatické umístění vašeho výpočtu na dosud nevytížený stroj. Cluster na ÚFALu se nazývá LRC (Linguistic Research Cluster) a clustrovací software na něm je Sun Grid Engine. Do clusteru jsou zařazené tyto počítače: Cluster (shluk) neboli grid (mříž, síť) je skupina počítačů, na kterých běží software pro automatické umístění vašeho výpočtu na dosud nevytížený stroj. Cluster na ÚFALu se nazývá LRC (Linguistic Research Cluster) a clustrovací software na něm je Sun Grid Engine. Do clusteru jsou zařazené tyto počítače:
  
-  * lrc.ufal.hide.ms.mff.cuni.cz: hlava clusteru. To znamená, že neslouží k výpočtům, ale ke správě fronty výpočtů, které se odesílají na výpočetní stroje v clusteru. Na hlavě se nemají pouštět žádné náročné výpočty a naopak na ostatní stroje v clusteru se mají výpočty odesílat výhradně prostřednictvím hlavy. Hlava má 2 procesory Intel Pentium D 3 GHz a 1 GB paměti. +  * lrc.ufal.hide.ms.mff.cuni.cz: hlava clusteru. To znamená, že neslouží k výpočtům, ale ke správě fronty výpočtů, které se odesílají na výpočetní stroje v clusteru. Na hlavě se nemají pouštět žádné náročné výpočty a naopak na ostatní stroje v clusteru se mají výpočty odesílat výhradně prostřednictvím hlavy. Hlava má 2 procesory Intel Pentium D 3 GHz a 1 GB paměti. Záložní hlava je lrc-two
-  * fireball1 až 10 (4xcore, 16 GB RAM, Fedora 7, procesory Intel Xeon 3 GHz) +  * V následující tabulce je uveden seznam výpočetních uzlů clusteru (aktuální k 27.6.2011): 
-  * tauri1 až 10 (4xcore, 16 GB RAM, Fedora 7, 2 procesory Intel Xeon 3 GHz) + 
-  * orion1 až 10 (4xcore, 16 GB RAM, Fedora 7, procesory Intel Xeon 2 GHz) +^ Jméno                   ^ CPU                         ^ RAM (GB)   ^ OS               ^ 
-  * sol1 až 13 (4xcore, 16 GB RAMFedora 7, 2 procesory AMD Opteron Dual Core GHz)+| andromeda[1-13]         | 2xCore4 AMD Opteron 2.8 Ghz | 32         | Ubuntu 10.04     | 
 +| fireball[1-10]          | 2xCore4 Intel Xeon 3 Ghz    | 32         | Ubuntu 10.04     | 
 +| hyperion[1-10]          | 2xCore2 Intel Xeon 3 Ghz    | 32         | Ubuntu 10.04     | 
 +| orion[1-10]             | 2xCore4 Intel Xeon Ghz    | 32         | Ubuntu 10.04     | 
 +| pandora[1-10]           | 2xCore2 Intel Xeon 2.6 Ghz  16         | Ubuntu 10.04     | 
 +| sol[1-8,11-13]          | 2xCore4 AMD Opteron 2 Ghz   | 16         | Ubuntu 10.04     | 
 +| tauri[1-10]             | 2xCore4 Intel Xeon 3 Ghz    | 32         | Ubuntu 10.04     | 
 +  
  
 Frontovací systém umožňuje: Frontovací systém umožňuje:
Line 18: Line 25:
  
 Jednou za život musíte provést [[Základní nastavení SGE]], abyste SGE mohli používat. Jednou za život musíte provést [[Základní nastavení SGE]], abyste SGE mohli používat.
- 
- 
  
 ===== Ukázka užití SGE ===== ===== Ukázka užití SGE =====
Line 26: Line 31:
  
 <code> <code>
-ssh lrc+ssh lrc-two
   # přihlašte se na hlavu clusteru   # přihlašte se na hlavu clusteru
 echo "hostname; pwd" > skript.sh echo "hostname; pwd" > skript.sh
Line 39: Line 44:
   # Pořadí parametrů **je** důležité, co je za jménem skriptu, to se předává skriptu.   # Pořadí parametrů **je** důležité, co je za jménem skriptu, to se předává skriptu.
 qstat qstat
-  # Podívejme se, jaké úlohy běží.+qstat -u '*'  
 +  # Podívejme se, jaké vaše úlohy běží.
   # SGE chvíli čeká, než skript opravdu spustí. Pro malinké úlohy tedy SGE může představovat   # SGE chvíli čeká, než skript opravdu spustí. Pro malinké úlohy tedy SGE může představovat
   # zbytečné zpoždění.   # zbytečné zpoždění.
 +  # -u '*' ukáže úlohy všech uživatelů na clusteri
 cat skript.sh.oXXXXX cat skript.sh.oXXXXX
   # vypište si výstup skriptu. XXXXX je ID jobu, které bylo přiděleno   # vypište si výstup skriptu. XXXXX je ID jobu, které bylo přiděleno
Line 97: Line 104:
  
 ===== Triky a opentlení ===== ===== Triky a opentlení =====
 +
  
 ==== ~bojar/tools/shell/qsubmit ==== ==== ~bojar/tools/shell/qsubmit ====
Line 109: Line 117:
 </code>  </code> 
  
 +lépe funguje ''~{stepanek,pajas}/bin/qcmd'' (nemusí se kvotovat parametry, správně počítá čas běhu...)
  
 ==== ~zeman/bin/qsub.csh ==== ==== ~zeman/bin/qsub.csh ====
Line 128: Line 136:
  
 (Kdybych místo uvozovek použil apostrofy, nerozbalily by se mi proměnné. První argument (název skriptu) klidně mohl být v uvozovkách spolu s přesměrováním. Dal jsem ho ven jen proto, že potom ''qsub.csh'' podle něj pojmenuje job ve frontě.) (Kdybych místo uvozovek použil apostrofy, nerozbalily by se mi proměnné. První argument (název skriptu) klidně mohl být v uvozovkách spolu s přesměrováním. Dal jsem ho ven jen proto, že potom ''qsub.csh'' podle něj pojmenuje job ve frontě.)
 +
  
  
Line 150: Line 159:
 Výstup každého jobu jde do vlastního logu, ''JOBNAME.o123456''. Pokud JOBNAME nezadáte (parametr ''-N''), užije se defaultní ''qrunblocks''. Výstup každého jobu jde do vlastního logu, ''JOBNAME.o123456''. Pokud JOBNAME nezadáte (parametr ''-N''), užije se defaultní ''qrunblocks''.
  
-Zatím není na závěr nijak testovánojestli se všechny analýzy povedly. Jediné, o co se snažím, je, aby na konci každého logu bylo napsáno ''Status: FAILED'', pokud se analýza toho kusu nepovedla. +Parametr ''-''''-join'' způsobíže se STDOUT ech kousků (ve správném pořadí) sebere a vypíše na hlavní STDOUT (''-''''-join'' implikuje ''-''''-sync'')Při spojování se také dělá důkladný test exitstatusů, takže ''qrunblocks'' končí úspěchem jen tehdykdyž echny joby uspěly.
- +
-Určitě je tam ještě spousta nevychytaných much, zejm. s různým escapováním různých věcí... Do budoucna plánuju přidat nejenom hromadný test úspěchuale taky sebrání STDOUT ech kousků.+
  
 +Bez ''-''''-sync'' nebo ''-''''-join'' nezbývá, než kontrolovat, jestli logy jednotlivých jobů na konci nemají napsáno:  ''Status: FAILED''.
  
 ===== Časté a záludné problémy ===== ===== Časté a záludné problémy =====
  
-==== Submitnutý job nesmí znovu submitovat ==== 
  
-Pokud se nemýlímnení dovoleno použít ''qsub'' ve skriptu/programukterý je už přes ''qsub'' spuštěn.+==== Submitnutý job může znovu submitovat ==== 
 + 
 +Danovy starší zkušenosti s clusterem PBS (nikoli SGE) říkaly, že tohle nejde. Ale jde to, aspoň u nás. Příkazy ''qsub'' a spol. jsou kromě hlavy clusteru dostupné i na všech strojích clusterusamozřejmě pokud váš soubor ''.bashrc'', ''.cshrc'' apod. zajistí, že se i na nich provede inicializace prostředí SGE.
  
  
Line 220: Line 229:
 </code> </code>
  
 +==== Jak zjistit, jaké zdroje jsem pro svou úlohu požadoval ====
  
- +<code>qstat -j 973884,982737,984029,984030,984031,984034,984036 | grep resource 
 +hard resource_list:         mem_free=50g 
 +hard resource_list:         mem_free=200g 
 +hard resource_list:         mem_free=16g 
 +hard resource_list:         mem_free=16g 
 +hard resource_list:         mem_free=16g 
 +hard resource_list:         mem_free=31g</code>
  
 ===== Synchronizace úloh (v Perlu) ===== ===== Synchronizace úloh (v Perlu) =====
Line 273: Line 288:
   * Pokud ''muj_skript.pl'' začne psát na výstup dřív, než přečetl všechen vstup, dojde k deadlocku. Lze vyřešit obalením příkazy ''cat'' v ''obaleno.sh''.   * Pokud ''muj_skript.pl'' začne psát na výstup dřív, než přečetl všechen vstup, dojde k deadlocku. Lze vyřešit obalením příkazy ''cat'' v ''obaleno.sh''.
   * Celý příklad je k vidění v Czengu od V.N.   * Celý příklad je k vidění v Czengu od V.N.
- 

[ Back to the navigation ] [ Back to the content ]