User Tools

Site Tools


strutture:cnaf:cnaf_rd:infrastruttura:utilizzo_cluster:carma_devkit

Carma Devkit e SLURM

Il carma-devkit utilizza SLURM come batch system. Per compilare i programmi da eseguire su questa piattaforma, non è possibile usare direttamente il carma-devkit, ma occorre usare l'host rd-arm-compiler, dedicato alla cross compilazione. Come per il resto dell'infrastruttura, anche su queste macchine le home degli utenti e lo spazio $SCRATCH sono distribuiti.

Sono state definite due code:

  • carma: per sottomettere job sulla board;
  • carma-devel: per accedere alla macchina di sviluppo mediante job interattivo.

Comandi base di SLURM:

sinfo Mostra le code e i nodi disponibili
squeue / smap Mostra i job di una coda
sbatch Sottomette un batch job
srun Sottomette un job interattivo
scancel Termina un job

In SLURM, le code sono chiamate "partition": quindi per specificare una coda, usare l'opzione:

 -p <nome-coda>

Come per LSF, anche per SLURM è consigliabile preparare un job file con le opzioni e i comandi da eseguire. Segue un esempio si job SLURM:

#!/bin/bash 
#SBATCH -J test       # Nome del job 
#SBATCH -p carma      # Nome della coda su cui sottomettere 
#SBATCH -e %J.err     # File su cui scrivere stderr 
#SBATCH -o %J.out     # File su cui scrivere stdout 
# 
# commands 
echo "My name is $0" 
echo "My PID is $$" 
echo "My host is "`hostname` 
echo "My username is "`whoami` 
echo "My home is $HOME" 
sleep 60 

Salvare il job in un file, ad esempio test.job, poi sottometterlo con:

$ sbatch test.job

Altre opzioni notevoli per sbatch:

Opzione Significato
-D Specificare la working directory
-N Richiede un numero minimo di nodi
-n Numero di task del job
-t Time limit. Formati "minutes", "minutes:seconds", "hours:minutes:seconds", "days-hours", "days-hours:minutes" e "days-hours:minutes:seconds"
-w Specifica la lista dei nodi
–get-user-env Indica al job di ereditare l'environment dell'utente
–mail-type=<type> Indica quando spedire la mail di notifica: BEGIN, END, FAIL, REQUEUE, ALL

Esempi

Esempio: aprire una shell sulla macchina di sviluppo

$ module load slurm-2.3.2
$ srun -p carma-devel -u bash -i

Esempio: cross compilazione per usare la GPU del carma-devkit

$ nvcc -target-cpu-arch=ARM -arch=sm_20 --compiler-bindir=/usr/bin/arm-linux-gnueabihf-gcc-4.6 -m32 hello.cu -o hello

Esempio: cross compilazione per il processore ARM del carma-devkit

$ /usr/bin/arm-linux-gnueabihf-gcc-4.6 hello.c -o hello_armv7
strutture/cnaf/cnaf_rd/infrastruttura/utilizzo_cluster/carma_devkit.txt · Last modified: 2013/11/22 14:16 by caberletti@infn.it

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki