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 ~]$ | ||
| + | </ | ||
