potkan.dnp.fmph.uniba.sk
 ++nomachine
 ++pbs/torque gate


contact: gridmaster at dnp.fmph.uniba.sk; subject: [POTKAN]
web-page-related : fekete at dnp.fmph.uniba.sk

Návod na použitie TORQUE/PBS Batch Systému
  1. Úvod
  2. Spustenie úlohy
  3. Stav vykonávania úlohy
  4. Ukončenie úlohy
  5. Súčasná kapacita farmy
  6. Ďalšie možnosti TORQUE

1. Úvod

Batch systém je jednoduchý program (presnejšie sada programov), ktorý zabezpečuje distribúciu úloh na pracovné stanice, kde sú tieto úlohy následne vykonávané (rozumej: spustí sa shell skript). Domovský adresár je na staniciach zdieľaný a úloha sa spúšťa pod kontom (a právami) používateľa, ktorý ju zadal. Treba si dať preto pozor, aby ste si neprepísali existujúce výsledky novými ak budete naraz púšťať niekoľko krát tú istú úlohu s rôznymi vstupnými parametrami, no rovnakým výstupným súborom.

Používateľ posiela úlohy na spustenie do fronty, kde sa zbierajú za radom od všetkých. Ak je práve nejaký výpočtový uzol (rozumej 1 jadro na ktorejkoľvek pracovnej stanici) voľný, priradí sa mu tá úloha, ktorá je práve na rade (rozumej : shell skript sa skopíruje na procovnú stanicu a spustí sa.). Od poslania úlohy do fronty je všetko riadené automaticky a používateľ nemusí čakať nalogovaný až do skončenia úlohy.

Každá úloha ma vlastný identifikátor tvaru <číslo úlohy>.potkan.dnp.fmph.uniba.sk, t.j. napríklad 1763.potkan.dnp.fmph.uniba.sk. Číslo úlohy je jedinečné pre každú úlohu a jednoznačne ju identifikuje. Na základe tohoto čísla možno s úlohou ďalej manipulovať (zružiť ju, pozerať si jej stav a pod.).

Po skončení vykonávania sa štandardný vstupný a chybový prúd nakopírujú naspäť na server do aktuálneho adresára z ktorého bola úloha spustená. Vytvoria sa 2 súbory: STDIN.o<číslo úlohy> a STDIN.e<číslo úlohy>, čo zodpovedá štandradnému výstupu a štandradnému chybovému prúdu.

2. Spustenie úlohy

Ako už bolo povedané, úloha je shell skript, ktorý sa zadáva ako parameter príkazu qsub. Čiže napríklad skript mojskript.sh:
#!/bin/bash

/bin/hostname;

/bin/date;

g77 generator.f -o generator &> compile_log.txt

if [ -f generator ]; then

     chmod 755 generator

     generator

else

     echo "Compilation failed"

fi
najprv vypíše do štandardného výstupného prúdu hostname, potom aktuálny dátmu a čas, potom sa pokúsi skompilovať generator.f a všetok výstup presmeruje do compile_log.txt. Následne vykoná test existencie súboru generator. Ak existuje tak mu zmení prístupové práva tak aby sa dal spustiť a potom ho spustí.

Tento skript sa pridáva do fronty príkazom : qsub mojskript.sh. Výsledkom tohoto príkazu je niečo ako :

user@potkan:/home/user$ qsub mojskript.sh
1764.potkan.dnp.fmph.uniba.sk
user@potkan:/home/user$
Ako bolo spomínané v úvode takto postavený skript je nevhodný, pretože by si prepísal log a program generator by mohol byť vo veľmi divnom stave (všetky uzly by kód z g77 písali do toho súboru). Po malej úprave však možno púšťať tento skript koľko krát chceme:
#!/bin/bash

/bin/hostname;

/bin/date;

UNIQ_ID=`uuidgen`;

mkdir $UNIQ_ID;

cd $UNIQ_ID;

g77 generator.f -o generator &> compile_log.txt

if [ -f generator ]; then

     chmod 755 generator

     generator

else

     echo "Compilation failed"

fi
V podstate stačí zabezpečiť aby každá jedna úloha pracovala nad vlastným samostatným adresárom, ktorý je unikátny. Ja som použil uuidgen, no fantázii sa medze nekladú.

Stav vykonávania úlohy

V predošlej časti sme spustili úlohu a dostali sme naspäť jej identifikátor. Existuje niekoľko príkazov ako sa pozrieť, čo všetko sa práve vykonáva a/alebo ešte len čaká vo fronte, prípadne bolo programom TORQUE zastavné kvôli nejakej chybe. Dajú sa taktiež pozrieť detaily úlohy, ktorú ste spustili (či sa vykonáva, kde sa výkonáva, koľko prostriedkov minula a pod.). Sú to príkazy qstat, showq, wn_list_state a tracejob. qstat a showq ukazujú informácie o fronte a v nej vykonávajúcich sa úlohách. wn_list_state ukazuje ktoré úlohy (podľa ID) sa vykonávajú na tej-ktorej pracovnej stanici (je to sparsovaný výstup z príkazu pbsnodes -a). tracejob ukazuje čo všetko sa s úlohou udialo od jej spustenia.

Majme skript :
#!/bin/bash

sleep 60

ktorý nerobí nič, len to, že čaká 1 minútu. keď ho 5x spustíme, dostaneme pre qstat -q :
user@potkan:/home/user$ qsub -t 0-4 mojskript.sh
1811.potkan.dnp.fmph.uniba.sk
user@potkan:/home/user$ qstat -q

server: potkan.dnp.fmph.uniba.sk
Queue            Memory CPU Time Walltime Node Run Que Lm State
---------------- ------ -------- -------- ---- --- --- -- -----
fmph_farma           --       --       --   --   5   0 --   E R
                                              ----- -----
                                                 5   0
Tu vidíme, že meno frontu je fmph_farma a, že práve beží 5 úloh (Run) a čaká 0 (Que). Podrobnješí výpis o fronte dá príkaz showq
user@potkan:/home/user$ showq
ACTIVE JOBS--------------------
JOBNAME USERNAME STATE PROC REMAINING STARTTIME

1811-1 user Running 1 2:23:59:59 Mon Sep 20 15:34:39
1811-2 user Running 1 2:23:59:59 Mon Sep 20 15:34:39
1811-3 user Running 1 2:23:59:59 Mon Sep 20 15:34:39
1811-4 user Running 1 2:23:59:59 Mon Sep 20 15:34:39

5 Active Jobs 5 of 60 Processors Active (8.33%)
2 of 15 Nodes Active (13.33%)

IDLE JOBS----------------------
JOBNAME USERNAME STATE PROC WCLIMIT QUEUETIME


0 Idle Jobs

BLOCKED JOBS----------------
JOBNAME USERNAME STATE PROC WCLIMIT QUEUETIME


Total Jobs: 5 Active Jobs: 5 Idle Jobs: 0 Blocked Jobs: 0
Tu vidíme, že máme jobID 1811 a 4 podúlohy. Spustené je to pod používateľom user. Ďalšie 2 časti - IDLE JOBS a BLOCKED JOBS sú pre úlohy, ktoré čakajú vo fronte, no zatiaľ nie je voľný výpočtový uzol, ktorý by ich spracoval (IDLE JOBS) a úlohy, ktoré z nejakého dôvodu TORQUE nevedel spustiť (BLOCKED JOBS). Pri BLOCKED JOBS platí, že ak ste si istí, že to čo žiadate cez qsub je v poriadku, tak je problém s výpočtovým uzlom a je nutný zásah administrátora.

Ako posledné uvediem výstup z príkazu tracejob:

fekete@potkan:/home/fekete/test$ tracejob 1811 /var/spool/torque/server_priv/accounting/20100920: Permission denied
/var/spool/torque/mom_logs/20100920: No such file or directory
/var/spool/torque/sched_logs/20100920: No such file or directory

Job: 1811-0.potkan.dnp.fmph.uniba.sk

09/20/2010 15:34:37 S enqueuing into fmph_farma, state 2 hop 1
09/20/2010 15:34:37 S enqueuing into fmph_farma, state 2 hop 1
09/20/2010 15:34:37 S enqueuing into fmph_farma, state 2 hop 1
09/20/2010 15:34:37 S enqueuing into fmph_farma, state 2 hop 1
09/20/2010 15:34:37 S enqueuing into fmph_farma, state 2 hop 1
09/20/2010 15:34:39 S Job Run at request of root@potkan.dnp.fmph.uniba.sk
09/20/2010 15:34:39 S Job Run at request of root@potkan.dnp.fmph.uniba.sk
09/20/2010 15:34:39 S Not sending email: User does not want mail of this type.
09/20/2010 15:34:39 S Job Run at request of root@potkan.dnp.fmph.uniba.sk
09/20/2010 15:34:39 S Not sending email: User does not want mail of this type.
09/20/2010 15:34:39 S Job Run at request of root@potkan.dnp.fmph.uniba.sk
09/20/2010 15:34:39 S Not sending email: User does not want mail of this type.
09/20/2010 15:34:39 S Job Run at request of root@potkan.dnp.fmph.uniba.sk
09/20/2010 15:34:39 S Not sending email: User does not want mail of this type.
09/20/2010 15:34:39 S Not sending email: User does not want mail of this type.
09/20/2010 15:34:39 S Not sending email: User does not want mail of this type.
09/20/2010 15:34:39 S Exit_status=0 resources_used.cput=00:00:00 resources_used.mem=0kb resources_used.vmem=0kb resources_used.walltime=00:00:00
09/20/2010 15:36:18 S Not sending email: User does not want mail of this type.
09/20/2010 15:36:18 S Exit_status=0 resources_used.cput=00:00:00 resources_used.mem=1388kb resources_used.vmem=66108kb resources_used.walltime=00:01:40
09/20/2010 15:36:18 S Not sending email: User does not want mail of this type.
09/20/2010 15:36:18 S Exit_status=0 resources_used.cput=00:00:00 resources_used.mem=1408kb resources_used.vmem=66108kb resources_used.walltime=00:01:40
09/20/2010 15:36:18 S Not sending email: User does not want mail of this type.
09/20/2010 15:36:18 S Exit_status=0 resources_used.cput=00:00:00 resources_used.mem=1384kb resources_used.vmem=66108kb resources_used.walltime=00:01:40
09/20/2010 15:36:18 S Not sending email: User does not want mail of this type.
09/20/2010 15:36:18 S Exit_status=0 resources_used.cput=00:00:00 resources_used.mem=1388kb resources_used.vmem=66108kb resources_used.walltime=00:01:40
09/20/2010 15:39:39 S dequeuing from fmph_farma, state COMPLETE
09/20/2010 15:41:18 S dequeuing from fmph_farma, state COMPLETE
09/20/2010 15:41:18 S dequeuing from fmph_farma, state COMPLETE
09/20/2010 15:41:18 S dequeuing from fmph_farma, state COMPLETE
09/20/2010 15:41:18 S dequeuing from fmph_farma, state COMPLETE
kde je okrem všelijakých (pre nás momentálne zbytočných výpisov) napísane, že bola úloha (a jej 4 podčasti) spustená, a skončila v stave COMPLETE, čo je z hľadiska TORQUE stav, že skončila v poriadku (cháp : TORQUE ju bol schopný dopraviť na výpočtový uzol a spustiť a po jej - akomkoľvek - skončení preniesť stdout a stderr naspäť na server).

4. Ukončenie úlohy

Keď úloha skončila, v adresári, z ktorého bola spustená sa objavia súbory pre stdout a stderr a samozrejme všetko, čo úloha cestou vytvorila.

5. Súčasná kapacita farmy

  • 60 výpočtových uzlov
  • Každý jeden z nich má k dispozícii : 1 CPU core @ 2,4 GHz, RAM 2GB, HDD (+/- neobmedzene),
  • WALL time : 12 hodín

6. Ďalšie možnosti TORQUE

Tu popísaný stručný úvod ukázal len základnú prácu. TORQUE toho obsahuje ďaleko viac. Odporúčaná literatúra teda je :

Návod na inštaláciu a použite nomachine
  1. Úvod/inštalácia
  2. Konfigurácia/Private key pre konekciu na server
  3. Pripojenie sa na server

1. Úvod/inštalácia

Nomachine je remote desktop ekvivalent pre linux. T.j. program, ktorým sa môžeme pripojiť na vzdialený počítač tak, ako kebyže sme za ním lokálne sedeli. Je to server/klient riešenie, to znamená. že na počítači na ktorý sa hlásite musí byť nainštalovaný nomachine server (prípadne GPL ekvivalent freenx) a na vašom počítači klient, ktorý si pre platformy Windows, Linux, Mac môžete stiahnut tu : http://www.nomachine.com/download.php.

Konfigurácia/Private key pre konekciu na server

Postupujte podľa obrázkov. V prípade problémov sa obráťte na hore uvedený kontakt s uvedeným predmtom správy.

Hlavné okno konfiguračného nástroja, kliknite na "Next >".
Nastavte session na "potkan". Ako Host napíšte potkan.dnp.fmph.uniba.sk. Internet connection type nechajte na ADSL (nomachine si aj tak vyjednáva najoptimálnejšiu rýchlosť pre spojenie so serverom). Kliknite na "Next >".
V časti Select size of your remote desktop je dobré na začiatok zvoliť niečo malé napr. 800x600 - to bude rozlíšenie okna v ktorom bude bežať vzdialená plocha. Zvyšok ponechajte tak ako je (UNIX,KDE). Kliknite na "Next >".
Posledny krok - zaškrtnite "Show the Advanced Configuration dialog". Voľba "Create shortcut on desktop" je štandardne zapnutá a pri vhodnom operačnom systéme, prípadne v Linux pri vhodnom Desktop Environmente na ploche pribudne ikonka ktorá bude priamo pristupovať na sever (t.j. nemusíte spúšťať nomachine klient z príkazového riadku, alebo ho hľadať v menu). Kliknite na "Finish".
Malo by sa Vám otvoriť okno "Advanced Configuration dialog" (občas to chvíľu trvá). Kliknite na tlačítko "Key" v sekcii 'Server'.
Otvorí sa Vám okno s kľúčom ktorý je prednastavený. Tento kľúč je pre server samozrejme iný a sem ho písať nebudem. Buď si ho nájdete vo svojom domovskom adresári v súbore kluc (práva 400), alebo kontaktujte administrátorov na hore uvedenej adrese.
Čiže - po obdržaní správneho kľúča, ten čo máte v nomachine klientovi ZMAŽTE a nahraďte ho správnym. Kliknite na "Save", čím sa dostanete do predošlého okna. Tam kliknite na "Save". Ak bude "Save" šedý tak na "OK".
Ak všetko funguje tak ako má. A pribudla Vám ikonka, prípadne ste klienta pustili ručne, tak uvidíte taketo nejake okno:
Vyplníte svoj username a password, ktorým sa štandardne hlásite na potkana, kliknete na "Login" a ak všetko prebehlo v poriadku, malo by sa Vám zobraziť okno s KDE (toto je moje, už trochu upravené, t.j. ikony/wallpaper)