User Tools

Site Tools


strutture:cnaf:cnaf_rd:infrastruttura:utilizzo_cluster:carma_devkit

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

strutture:cnaf:cnaf_rd:infrastruttura:utilizzo_cluster:carma_devkit [2013/10/31 08:08] – created caberletti@infn.itstrutture:cnaf:cnaf_rd:infrastruttura:utilizzo_cluster:carma_devkit [2013/11/22 14:16] (current) caberletti@infn.it
Line 1: Line 1:
 +===== 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:
 +<code bash>
 + -p <nome-coda>
 +</code>
 +
 +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: 
 +<code bash>
 +#!/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 
 +</code>
 +
 +Salvare il job in un file, ad esempio test.job, poi sottometterlo con:
 +<code bash>
 +$ sbatch test.job
 +</code>
 +
 +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
 +<code bash>
 +$ module load slurm-2.3.2
 +$ srun -p carma-devel -u bash -i
 +</code>
 +
 +Esempio: cross compilazione per usare la GPU del carma-devkit
 +<code bash>
 +$ nvcc -target-cpu-arch=ARM -arch=sm_20 --compiler-bindir=/usr/bin/arm-linux-gnueabihf-gcc-4.6 -m32 hello.cu -o hello
 +</code>
 +
 +Esempio: cross compilazione per il processore ARM del carma-devkit
 +<code bash>
 +$ /usr/bin/arm-linux-gnueabihf-gcc-4.6 hello.c -o hello_armv7
 +</code>

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki