Cluster používá systém pro správu úloh 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.
