strutture:cnaf:cnaf_rd:infrastruttura:utilizzo_cluster:batch_system
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
strutture:cnaf:cnaf_rd:infrastruttura:utilizzo_cluster:batch_system [2013/10/31 08:06] – created caberletti@infn.it | strutture:cnaf:cnaf_rd:infrastruttura:utilizzo_cluster:batch_system [2013/11/26 16:25] (current) – [Configurazione del batch system] caberletti@infn.it | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Utilizzo del Batch System ====== | ||
+ | ==== Configurazione del batch system ==== | ||
+ | Per l' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Gli utenti sono suddivisi nei seguenti gruppi: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Con il comando: | ||
+ | <code bash> | ||
+ | $ bugroup | ||
+ | </ | ||
+ | è possibile visualizzare tutti gli utenti suddivisi per gruppo di appartenenza. | ||
+ | |||
+ | Ogni gruppo di utenti può utilizzare solamente le code che gli sono state assegnate. Ovviamente, i nomi di gruppi utenti e code sono autoesplicativi: | ||
+ | |||
+ | Sono state definite delle nuove risorse che rappresentano le GPU disponibili e il MIC. Queste risorse sono: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Segue la tabella con il dettaglio della quantità di risorse disponibili su ciascun server fisico: | ||
+ | ^ Host ^ gpu_k20 | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | |||
+ | |||
+ | Per vedere quali host sono disponibili nel cluster e il loro stato, usare i comandi: | ||
+ | <code bash> | ||
+ | $ bhosts | ||
+ | $ bhosts -w | ||
+ | </ | ||
+ | |||
+ | Per vedere i dettagli di un singolo host usare: | ||
+ | <code bash> | ||
+ | $ bhosts -l hostname | ||
+ | </ | ||
+ | |||
+ | Per vedere lo stato delle code usare: | ||
+ | <code bash> | ||
+ | $ bqueues | ||
+ | </ | ||
+ | |||
+ | Per vedere i dettagli di una coda: | ||
+ | <code bash> | ||
+ | $ bqueues -l coda | ||
+ | </ | ||
+ | |||
+ | Per sottomettere un job utilizzare il comando: | ||
+ | <code bash> | ||
+ | $ bsub [opzioni] ' | ||
+ | </ | ||
+ | |||
+ | Questo comando supporta numerose opzioni; le più interessanti sono: | ||
+ | ^ Opzione | ||
+ | | -q // | ||
+ | | -m // | ||
+ | | -c //n// | CPU time limite di n secondi | ||
+ | | -n //x// | Utilizza x core per il job | | ||
+ | | -J // | ||
+ | | -o // | ||
+ | | -e // | ||
+ | | -N | Separa il job report dall' | ||
+ | | -B | Invia una mail quando il job va in start | | ||
+ | | -R "// | ||
+ | | -a // | ||
+ | |||
+ | |||
+ | Per sottomettere un job e consigliabile preparare un file di testo contenente tutte le opzioni e i comandi da eseguire, come il seguente: | ||
+ | <code bash> | ||
+ | #BSUB -J example | ||
+ | #BSUB -c 600 # Time limit in seconds | ||
+ | #BSUB -n 1 # Number of cores | ||
+ | #BSUB -o %J.out | ||
+ | #BSUB -e %J.err | ||
+ | #BSUB -N # Job report | ||
+ | #BSUB -B # Send mail | ||
+ | #BSUB -q coka # Job queue | ||
+ | #BSUB -m rd-coka-01 | ||
+ | #BSUB -R ' | ||
+ | # | ||
+ | # commands | ||
+ | echo 'hello world' | ||
+ | sleep 10 | ||
+ | </ | ||
+ | |||
+ | Salvare il job in un file (es. '' | ||
+ | <code bash> | ||
+ | $ bsub < example.job | ||
+ | </ | ||
+ | |||
+ | Per monitorare lo stato dei propri job, utilizzare il comando: | ||
+ | <code bash> | ||
+ | $ bjobs | ||
+ | </ | ||
+ | |||
+ | Per terminare un job, usare il comando: | ||
+ | <code bash> | ||
+ | $ bkill jobid | ||
+ | </ | ||
+ | |||
+ | Quando un job termina, viene spedito un report riguardante l' | ||
+ | <code bash> | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== Job interattivi ==== | ||
+ | Sono job che mandano il proprio output su stdout e leggono l’input da stdin. Sono utili per eseguire operazioni come compilazione e debug delle applicazioni, | ||
+ | Questo tipo di job possono essere sottomessi solamente sulle code che accettano i job di tipo interattivo, | ||
+ | Esempio: esecuzione del comando ls con job interattivo: | ||
+ | <code bash> | ||
+ | $ bsub -Is -q interactive ls | ||
+ | Job <682> is submitted to queue < | ||
+ | << | ||
+ | 537.err | ||
+ | 537.out | ||
+ | example.job | ||
+ | hello_mic | ||
+ | hello_nv | ||
+ | intel | ||
+ | interactive.job | ||
+ | lsf_job_template.job | ||
+ | matrix | ||
+ | mbox | ||
+ | </ | ||
+ | |||
+ | Esempio: compilazione | ||
+ | <code bash> | ||
+ | $ bsub -Is -q interactive gcc -o hello hello.c | ||
+ | Job < | ||
+ | << | ||
+ | << | ||
+ | </ | ||
+ | |||
+ | Esempio: shell con X-Forwarding (notare opzione -XF) | ||
+ | <code bash> | ||
+ | $ bsub -Is -XF -q interactive /bin/bash | ||
+ | Job < | ||
+ | <<ssh X11 forwarding job>> | ||
+ | << | ||
+ | [user@server ~]$ | ||
+ | </ |