Utilizzo del cluster
Questa pagina riporta alcuni comandi utili per la gestione del cluster su toeplitz.cs.dm.unipi.it
.
Gestione dei lavori
Visualizzazione della coda
In ogni momento è possibile visualizzare la coda dei lavori con i comandi:
- squeue: questo stampa su terminale la lista dei lavori in esecuzione, e di quelli in attesa che si liberino risorse.
- sview: queesta applicazione grafica (ricordarsi di collegarsi a
toeplitz.cs.dm.unipi.it
tramitessh -X
ossh -Y
) permette di visualizzare lo stato della coda e delle risorse allocate ai vari job. Questo tool permette anche un'interazione con i vari lavori (ad esempio si possono cancellare / rimettere in coda / ecc.).
Visualizzare dettagli di un job
Ogni job è identificato da un numero (jobid), e si possono ottenere informazioni sullo specifico job con il comando scontrol, ad es:
$ scontrol show jobid 21683 JobId=21683 JobName=bash UserId=robol(1021) GroupId=robol(1021) MCS_label=N/A Priority=4294880506 Nice=0 Account=compute-account QOS=normal JobState=RUNNING Reason=None Dependency=(null) Requeue=1 Restarts=0 BatchFlag=0 Reboot=0 ExitCode=0:0 RunTime=00:20:31 TimeLimit=00:30:00 TimeMin=N/A SubmitTime=2019-04-05T09:13:06 EligibleTime=2019-04-05T09:13:06 StartTime=2019-04-05T09:13:06 EndTime=2019-04-05T09:43:31 Deadline=N/A PreemptTime=None SuspendTime=2019-04-05T09:14:24 SecsPreSuspend=53 Partition=cl1 AllocNode:Sid=toeplitz:13659 ReqNodeList=lnx1 ExcNodeList=(null) NodeList=lnx1 BatchHost=lnx1 NumNodes=1 NumCPUs=1 NumTasks=1 CPUs/Task=1 ReqB:S:C:T=0:0:*:* TRES=cpu=1,mem=120G,node=1 Socks/Node=* NtasksPerN:B:S:C=0:0:*:* CoreSpec=* MinCPUsNode=1 MinMemoryNode=120G MinTmpDiskNode=0 Features=(null) DelayBoot=00:00:00 Gres=(null) Reservation=(null) OverSubscribe=OK Contiguous=0 Licenses=(null) Network=(null) Command=bash WorkDir=/home/robol Power=
Le stesse informazioni sono reperibili tramite il tool sview
.
Lanciare nuovi job
Per creare un nuovo lavoro ci sono tre opzioni distine:
- sinteractive: questo comando chiede all'utente quali risorse allocare (numero di CPU / memoria / ecc.), e apre una sessione interattiva dove poter utilizzare un nodo del cluster.
- srun: esegue un comando prenotando le risorse richieste (esempi sotto), e ritorna solo quando il comando è terminato. L'output viene stampato direttamente a schermo.
- sbatch: quasi identico ad
srun
(anche nei parametri), ma programma il lavoro per l'esecuzione e ritorna immediatamente. L'output viene salvato in un fileslurm-NNNNN.out
nella directory corrente.
Alcuni esempi:
srun --mem 20G --cpus 12 --time 200:00:00 matlab -r "n = 20; mioscript; quit;"
esegue lo MATLAB, setta la variabile n
al valore 20
,
poi esegue mioscript
ed esce. Identicamente, si può utilizzare sbatch
per lanciare il processo in background. Il tempo massimo di esecuzione è settato a 200 ore.
srun --x11 --mem 10G -p cl1 --pty bash -i
apre una shell con inoltro della grafica tramite X11 (anche in questo caso, è
necessario essere collegati a toeplitz
con ssh -X
o ssh -Y
). Il lavoro verrà lanciato sulla partizione cl1
(vedi dopo la sezione sulle partizioni).
sbatch --mem 100G --mail-type ALL --mail-user my@email.com ./mioscript.sh
mette in coda lo script mioscript.sh
e invia un'email a my@email.com
ad ogni cambiamento di stato. Altri valori possibili per mail-type
sono FAIL, BEGIN, END
.
Partizioni
Le macchine nel cluster sono divise in due gruppi:
cl1
contiene solo una macchina,lnx1
, con 24 core logici e 128GB di RAM.cl2
contiene le macchinelnx[2-4]
, che hanno 48 core logici e 256GB di RAM. Questi core sono più lenti come clock rispetto a quelli dilnx1
.
Esiste poi una partizione all
che include tutte le macchine sopra.