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 tramite ssh -X o ssh -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:

  1. 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.
  2. srun: esegue un comando prenotando le risorse richieste (esempi sotto), e ritorna solo quando il comando è terminato. L'output viene stampato direttamente a schermo.
  3. sbatch: quasi identico ad srun (anche nei parametri), ma programma il lavoro per l'esecuzione e ritorna immediatamente. L'output viene salvato in un file slurm-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 macchine lnx[2-4], che hanno 48 core logici e 256GB di RAM. Questi core sono più lenti come clock rispetto a quelli di lnx1.

Esiste poi una partizione all che include tutte le macchine sopra.

(Aggiornato al 5/04/2019)