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.