Náš cluster prochází velkým upgradem - jak hardwareovým tak i softwareovým. Přecházíme na distribuci Ubuntu Server 14.04 a zároveň měníme systém pro správu úloh. Ten nový se jmenuje SLURM.
Pro ovládání SLURMa, můžete použít staré známé příkazy (qstat, qsub, qdel), ale lepší bude, když se naučíte používat originální příkazy.
srun - okamžité spuštění úlohy
srun [volby] příkaz [parametry]
Alokuje zdroje pro start úlohy a pak spustí příkaz s jeho případnými parametry.
[volby] - jsou skutečně bohaté, zde jen některé (více viz man srun)
-n číslo : počet úloh (pro paralelní úlohu na 8 CPU: -n8)
-p partition : alias fronta úloh (-p express)
pozn. Pokud jako příkaz zadáte nějaký interaktivní (např. bash), úlohu ukončíté pomocí Ctrl-C 2x za sebou (do 1 sec). Více níže o internaktivním režimu
Jak na interaktivní režim?
Pokud budete chtít spustit přes srun nějakou internatkivní úlohu (bash a pod.), tak použijte následující volby:
-u: zakáže buffer pro stdout příkazu
srun -u bash -i
A objeví se Vám shell na některém z výpočetních nodů. POZOR. je důležité použít parametr -i ZA příkazem bash - je to jeho parametr.
sbatch - naplánování připravené úlohy
sbatch [volby] skript [argumenty]
Naplánuje spuštění úlohy definované, ve skript-u. Skript vypadá následovně:
uloha.sh #!/bin/bash # #SBATCH --job-name=test_mpi #SBATCH --output=res_mpi.txt # #SBATCH -n 24 #SBATCH --time=10:00 #SBATCH -p express #SBATCH --constraint="InfiniBand" #SBATCH --mail-type=ALL #SBATCH --mail-user=email@adresa.cz mpirun ./pi
Zařídí spuštění paralelní úlohy na 24 CPU, ve frontě "express", s časovém omezení 10 minut. Úlohu pojmenuje "test_mpi", std. výstup přesměruje do soubor "res_mpi.txt". Požadujeme výpočetní nody s vlastností "InfiniBand" a chceme být informování email o každém úkonu, který SLURM provede s naší úlohou. Události jsou: BEGIN,END,FAIL,REQUEUE.
sbatch uloha.sh
scancel - zrušení úlohy
scancel [volby] job_identifikátor
salloc - alokace zdrojů pro úlohu
salloc [volby] [příkaz]
Alokuje zdroje pro spuštění úlohy. Pokud je zadán příkaz, tak jej provede a skončí. Vrátí jobid:
salloc -n8
salloc: Granted job allocation 270
A nyní je možné využít těchto zdrojů např. pro srun pomocí parametru --jobid=<jobid>
srun --jobid=270 ./hallo
squeue - informace o úlohách
Vypíše informace o bežících/čekajících úlohách
sinfo - informace o frontách, nodech a dalším
dopsat a dozkoušet:
sattach - připojí se k běžící úloze
sattach [volby] job_identifikátor
Připojení k úloze včetně přeměrovaných std in/out. Vhodné i pro debugger.