Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
grid [2007/09/24 03:59] bojar nice a qsub, paralelni pristup ke sdilenym diskum |
grid [2017/09/26 20:38] popel |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== | + | ====== |
- | Cluster | + | LRC (Linguistic Research Cluster) is a name of ÚFAL' |
- | * lrc.ufal.hide.ms.mff.cuni.cz: | + | If you need GPU processing, see a special page about our [[:gpu|GPU cluster called DLL]] (which is actually |
- | * fireball1 až 10 (na každém 4 procesory Intel Xeon 3 GHz, 16 GB paměti, Fedora 7) | + | |
- | * tauri1 | + | |
- | * orion1 až 10 (na každém 4 procesory Intel Xeon 2 GHz, 16 GB paměti, 12.9.2007 naplánovaná odstávka na reinstalaci) | + | |
- | * sol1 až 10 (na každém 4 procesory AMD Opteron Dual Core 2 GHz, 16 GB paměti, 12.9.2007 naplánovaná odstávka na reinstalaci) | + | |
- | Frontovací systém umožňuje: | + | ===== List of Machines ===== |
+ | Last update: 2017/09. All machines have Ubuntu 14.04. | ||
+ | Some machines are at Malá Strana (ground floor, new server room built from Lindat budget), some are at Troja (5 km north-east). | ||
+ | If you need to quickly distinguish which machine is located where, you can use your knowledge of [[https:// | ||
- | | + | ==== Troja (troja-all.q) ==== |
- | | + | ^ Name ^ CPU type ^ GHz ^cores ^RAM(GB)^ note ^ |
- | | + | | achilles[1-8] |
+ | | hector[1-8] | ||
+ | | helena[1-8] | ||
+ | | paris[1-8] | ||
- | ===== Jak začít ===== | + | ==== MS = Malá Strana (ms-all.q) |
- | Jednou za život musíte provést | + | ^ Name ^ CPU type ^ GHz ^cores ^RAM(GB)^ note ^ |
+ | | andromeda[1-13] | AMD 2xCore4 Opteron | 2.8 | 8 | 32 | | | ||
+ | | hydra[1-4] | AMD | 2.6 | 16 | 128 | | | ||
+ | | fireball[1-10] | ||
+ | | hyperion[1-9] | ||
+ | | lucifer[1-10] | ||
+ | | orion[1-6] | ||
+ | | orion[7-10] | ||
+ | | tauri[1-10] | ||
+ | | cosmos | ||
+ | | belzebub | ||
+ | | iridium | ||
+ | | twister[1,2] | Intel 2xCore4 Xeon | 2.4 | 8 | 48 | also in '' | ||
- | ===== Ukázka užití SGE ===== | + | === Outside LRC cluster (but located as MS) === |
+ | ^ Name ^ CPU type ^ GHz ^cores ^ RAM(GB)^ note ^ | ||
+ | | lrc[1, | ||
+ | | pandora[1-10] | ||
+ | | sol[1-5] | ||
+ | | sol[6-8] | ||
- | Tato posloupnost příkazů ukazuje, jak užít | + | The two **lrc machines** are so called heads of the cluster. **No computation is allowed here**, i.e. no CPU-intensive, |
+ | |||
+ | Alternatively, | ||
+ | |||
+ | The **pandora machines** are in a special cluster (not accessible from lrc) and queue **ms-guests.q** available for our colleagues from KSVI and for students of [[http:// | ||
+ | |||
+ | ===== Installation ===== | ||
+ | |||
+ | Add the following line into your ' | ||
+ | |||
+ | source / | ||
+ | |||
+ | This detects if you are on one of the cluster machines (including lrc and sol) and sets env variables accordingly. It also prints a status message. | ||
+ | Usually, this is the first line of your ' | ||
+ | |||
+ | [ -f ~/.bashrc ] && source ~/.bashrc | ||
+ | |||
+ | ===== Basic usage ===== | ||
+ | |||
+ | First, you need to ssh to the cluster head (lrc1 or lrc2) or to one of the sol machines. The full address is '' | ||
< | < | ||
- | ssh lrc | + | ssh lrc1 |
- | # přihlašte se na hlavu clusteru | + | echo 'hostname; pwd; echo The second parameter is $2' |
- | echo "hostname; pwd" | + | # prepare a shell script describing your task |
- | # vyrobte skript, který popisuje, co má úloha udělat | + | qsub -cwd -j y script.sh Hello World |
- | qsub -cwd -j y skript.sh | + | # This submits your job to the default queue, which is currently '' |
- | # zařaďte úlohu do fronty. | + | # Usually, there is a free slot, so the job will be scheduled within few seconds. |
- | # Vlastně stačilo zavolat: qsub skript.sh | + | # We have used two handy qsub parameters: |
- | # Ale dodatečné parametry zařídily: | + | # -cwd ... the script is executed in the current directory |
- | # -cwd ... skript bude spuštěn v aktuálním adresáři | + | # -j y ... stdout and stderr outputs are merged and redirected to a file ('' |
- | # -V ... proměnné z vašeho prostředí budou zkopírovány do prostředí skriptu | + | # We have also provided two parameters for our script " |
- | # -j y ... standardní | + | # The qsub prints something like |
- | # Pořadí parametrů **je** důležité, | + | # Your job 121144 (" |
qstat | qstat | ||
- | # Podívejme se, jaké úlohy běží. | + | # This way we inspect all our jobs (both waiting in queue and scheduled, i.e. running). |
- | # SGE chvíli čeká, než skript opravdu spustí. Pro malinké úlohy tedy SGE může představovat | + | qstat -u ' |
- | # zbytečné zpoždění. | + | # This shows jobs of all users. |
- | cat skript.sh.oXXXXX | + | qstat -j 121144 |
- | # vypište si výstup skriptu. XXXXX je ID jobu, které bylo přiděleno | + | # This shows detailed info about the job with this number (if it is still running). |
- | # qsubem. Čili druhé poslání do fronty starší log typicky nepřepíše. | + | less script.sh.o* |
+ | # We can inspect the job's output (in our case stored in script.sh.o121144). | ||
+ | # Hint: if the job is still running, press F in ' | ||
</ | </ | ||
- | A takto dopadl výstup našeho skriptu: | + | The output of our job should look like: |
< | < | ||
- | Warning: no access to tty (Bad file descriptor). | + | LRC:ubuntu 14.04: 8.1.7a Son of Grid Engine variables set... |
- | Thus no job control in this shell. | + | lucifer5 |
- | sol2.ufal.hide.ms.mff.cuni.cz | + | /home/popel/tmp |
- | /export/home/bojar | + | The second parameter is World |
+ | ======= EPILOG: Tue Sep 26 19:49:05 CEST 2017 | ||
+ | == Limits: | ||
+ | == Usage: | ||
+ | == Duration: 00:00:02 (2 s) | ||
</ | </ | ||
- | Další užitečné příkazy a parametry: | + | Our admins configured the SGE to print some extra info on stderr: the first line and then the epilog. |
+ | The '' | ||
+ | The '' | ||
< | < | ||
- | qsub -o LOG.stdout -e LOG.stderr skript.sh | + | qdel 121144 |
- | # když chcete přesměrovat výstup skriptu do určených souborů | + | # This way you can delete a job with a given number, or comma-or-space separated list of job numbers. |
- | qsub -S /bin/bash | + | qdel \* |
- | # když chcete, aby skript běžel v bashi | + | # This way you can delete all your jobs. Don't be afraid - you cannot delete others jobs. |
- | qdel all | + | |
- | # když chcete zrušit všechny své joby (rušit cizí nesmíte) | + | |
</ | </ | ||
+ | ===== Rules ===== | ||
+ | * You can ssh to any cluster machine, which can be useful e.g. to diagnose what's happening there (using '' | ||
+ | * However, **never execute any computing manually** on a cluster machine, unless via '' | ||
+ | * For interactive work, you can use '' | ||
+ | * **Specify the memory requirements** of your job, e.g. with < | ||
- | ===== Pravidla pro správné používání clusteru ===== | + | TODO explanation |
- | + | Informovat SGE, kolik paměti úloha žere, aby na strojích nedošla paměť (a používat " | |
- | Základní pravidlo, které musíme všichni ctít, aby SGE plnilo svou úlohu | + | |
- | * Nespouštět úlohy ručně. (O ručně spuštěných úlohách SGE nemá informaci, klidně na daný uzel pošle ještě další úlohy z fronty.) | ||
Další doporučení: | Další doporučení: | ||
Line 78: | Line 125: | ||
* Uklízet po sobě lokální data, protože jinak si tam už nikdo nic užitečného nepustí. | * Uklízet po sobě lokální data, protože jinak si tam už nikdo nic užitečného nepustí. | ||
* Vyhnout se hodně divokému paralelnímu přístupu ke sdíleným diskům. NFS server to pak nepěkně zpomalí pro všechny. Distribuujte tedy i data. | * Vyhnout se hodně divokému paralelnímu přístupu ke sdíleným diskům. NFS server to pak nepěkně zpomalí pro všechny. Distribuujte tedy i data. | ||
+ | * Pokud chci spouštět úlohy, které poběží dlouhou dobu (hodiny, dny), nepustím je všechny najednou, aby cluster mohli využívat i ostatní. | ||
- | Víc pravidel není. | + | ===== Advanced usage ===== |
+ | |||
+ | Other useful commands: | ||
+ | |||
+ | < | ||
+ | qsub -o LOG.stdout -e LOG.stderr skript.sh | ||
+ | # když chcete přesměrovat výstup skriptu do určených souborů | ||
+ | qsub -S /bin/bash | ||
+ | # když chcete, aby skript běžel v bashi | ||
+ | qsub -V | ||
+ | # když chcete předat proměnné prostředí | ||
+ | qdel \* | ||
+ | # když chcete zrušit všechny své joby (rušit cizí nesmíte) | ||
+ | </ | ||
- | ===== Triky a opentlení ===== | ||
- | ==== ~bojar/ | + | ==== ~bojar/ |
qsubmit je jako qsub, ale příjemnější: | qsubmit je jako qsub, ale příjemnější: | ||
- | * nemusíte vyrábět skript, vyrobí ho sám | + | * nemusíte vyrábět skript, vyrobí ho sám (pozn.: nemusíte vyrábět skript, když použijete přepínač '' |
* nemusíte připisovat '' | * nemusíte připisovat '' | ||
- | |||
< | < | ||
- | ~bojar/ | + | ~bojar/ |
</ | </ | ||
+ | lépe funguje '' | ||
+ | |||
+ | ===== Monitorování úloh ===== | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * ''/ | ||
+ | * ''/ | ||
+ | * ''/ | ||
+ | * mem_total: celkova pamet uzlu | ||
+ | * mem_free: tedy kolik je jeste volne pameti z pametove quoty uzlu | ||
+ | * act_mem_free: | ||
+ | * mem_used: kolik je pameti skutecne pouzito | ||
+ | * ''/ | ||
+ | * celkovy pocet jader, pocet vyuzitych jader | ||
+ | * celkova velikost RAM, kolik je ji fyzicky nepouzite, kolik je ji jeste nerezervovane | ||
+ | * po jednotlivych uzivatelich (zrovna pocitajicich) -- kolik jim bezi uloh, kolik jich maji ve fronte a kolik z nich je ve stavu hold | ||
+ | * '' | ||
+ | * [[https:// | ||
===== Časté a záludné problémy ===== | ===== Časté a záludné problémy ===== | ||
- | ==== Submitnutý job nesmí znovu submitovat ==== | ||
- | Pokud se nemýlím, není dovoleno použít '' | + | ==== 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 | ||
+ | |||
==== Proměnné prostředí, | ==== Proměnné prostředí, | ||
Line 108: | Line 189: | ||
Zatím nevím přesně, které ze souborů '' | Zatím nevím přesně, které ze souborů '' | ||
+ | |||
+ | Z toho například také vyplývá, že bez ošetření se jako **Java** používá | ||
+ | |||
+ | java version " | ||
+ | gij (GNU libgcj) version 4.1.2 20070502 (Red Hat 4.1.2-12) | ||
+ | |||
+ | Pokud chcete submittovaný program pouštět ve svém oblíbeném prostředí (např. nastavení '' | ||
==== Jiný shell ==== | ==== Jiný shell ==== | ||
Line 152: | Line 240: | ||
fi | fi | ||
</ | </ | ||
+ | |||
+ | ==== Jak zjistit, jaké zdroje jsem pro svou úlohu požadoval ==== | ||
+ | |||
+ | < | ||
+ | hard resource_list: | ||
+ | hard resource_list: | ||
+ | hard resource_list: | ||
+ | hard resource_list: | ||
+ | hard resource_list: | ||
+ | hard resource_list: | ||
+ | |||
+ | ==== Jak rezervovat více jader na stejném stroji pro 1 job ==== | ||
+ | |||
+ | < | ||
+ | qsub -pe smp <pocet jader> | ||
+ | </ | ||
+ |