User Tools

Site Tools


strutture:cnaf:cnaf_rd:infrastruttura:utilizzo_cluster:batch_system

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
strutture:cnaf:cnaf_rd:infrastruttura:utilizzo_cluster:batch_system [2013/11/22 16:46] – [Job interattivi] manzali@infn.itstrutture: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'utilizzo delle macchine del cluster di calcolo sono state definite le seguenti code:
 +  * ''normal''      : coda normale per utenti RD e RD-GUEST
 +  * ''interactive'' : coda per job interattivi per utenti RD e RD-GUEST
 +  * ''coka''        : coda normale per utenti COKA
 +  * ''coka-devel''  : coda per job interattivi per utenti COKA
 +  * ''performance'' : coda solo per l'esecuzione di job ad uso esclusivo di un server, per utenti RD, RD-GUEST e COKA
 +  * ''cms''         : coda normale per utenti CMS
 +  * ''cms-devel''   : coda per job interattivi per utenti CMS
 +  * ''atlas''       : coda normale per utenti ATLAS
 +  * ''atlas-devel'' : coda per job interattivi per utenti ATLAS
 +  * ''alice''       : coda normale per utenti ALICE
 +  * ''alice-devel'' : coda per job interattivi per utenti ALICE
 +
 +Gli utenti sono suddivisi nei seguenti gruppi:
 +  * ''rd''
 +  * ''rd-guest''
 +  * ''coka-users''
 +  * ''cms-users''
 +  * ''atlas-users''
 +  * ''alice-users''
 +
 +Con il comando:
 +<code bash>
 +$ bugroup
 +</code>
 +è 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: quindi ad esempio gli utenti del gruppo ''cms-users'' potranno usare solamente le code ''cms-*''.
 +
 +Sono state definite delle nuove risorse che rappresentano le GPU disponibili e il MIC. Queste risorse sono:
 +  * ''gpu_k20''  : rappresenta le GPU Tesla K20
 +  * ''gpu_c2050'': rappresenta le GPU Tesla C2050
 +  * ''mic''      : rappresenta l'Intel ManyCore
 +
 +Segue la tabella con il dettaglio della quantità di risorse disponibili su ciascun server fisico:
 +^  Host          ^  gpu_k20  ^  gpu_c2050    mic  ^
 +| ''rd-coka-01'' |  2        -                |
 +| ''rd-coka-02'' |  -        -                |
 +| ''rd-gpu-02''  |  -        3                |
 +
 +
 +Per vedere quali host sono disponibili nel cluster e il loro stato, usare i comandi:
 +<code bash>
 +$ bhosts
 +$ bhosts -w
 +</code>
 +
 +Per vedere i dettagli di un singolo host usare:
 +<code bash>
 +$ bhosts -l hostname
 +</code>
 +
 +Per vedere lo stato delle code usare:
 +<code bash>
 +$ bqueues
 +</code>
 +
 +Per vedere i dettagli di una coda:
 +<code bash>
 +$ bqueues -l coda
 +</code>
 +
 +Per sottomettere un job utilizzare il comando:
 +<code bash>
 +$ bsub [opzioni] 'eseguibile'
 +</code>
 +
 +Questo comando supporta numerose opzioni; le più interessanti sono:
 +^ Opzione            ^ Descrizione                         ^
 +| -q //coda//        | Specifica a quale coda sottomettere |   
 +| -m //hostname//    | Sceglie a quale host inviare il job |
 +| -c //n//           | CPU time limite di n secondi        |
 +| -n //x//           | Utilizza x core per il job          |
 +| -J //nome//        | Assegna 'nome' come job name        |
 +| -o //file.out//    | Job standard output                 |
 +| -e //file.err//    | Job standard error                  |
 +| -N                 | Separa il job report dall'output    |
 +| -B                 | Invia una mail quando il job va in start              |
 +| -R "//risorsa=n//" | Specifica di quali e quante risorse il job ha bisogno |
 +| -a //application// | Specifica quale application utilizzare (da usare con MPI) |
 +
 +
 +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      # Job name 
 +#BSUB -c 600          # Time limit in seconds 
 +#BSUB -n 1            # Number of cores 
 +#BSUB -o %J.out       # Job standard output 
 +#BSUB -e %J.err       # Job standard error 
 +#BSUB -N              # Job report 
 +#BSUB -B              # Send mail 
 +#BSUB -q coka         # Job queue 
 +#BSUB -m rd-coka-01   # Host selection 
 +#BSUB -R 'gpu_k20=1'  # Resource requirements 
 +
 +# commands 
 +echo 'hello world' 
 +sleep 10 
 +</code>
 +
 +Salvare il job in un file (es. ''example.job'') e sottometterlo con:
 +<code bash>
 +$ bsub < example.job
 +</code>
 +
 +Per monitorare lo stato dei propri job, utilizzare il comando:
 +<code bash>
 +$ bjobs
 +</code>
 +
 +Per terminare un job, usare il comando:
 +<code bash>
 +$ bkill jobid
 +</code>
 +
 +Quando un job termina, viene spedito un report riguardante l'esecuzione del job via mail, direttamente sulla UI. Per leggere queste mail, utilizzare il tool mailx:
 +<code bash>
 +$ mail
 +</code>
 +
 +==== 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, oppure per eseguire programmi che richiedono l'interazione dell'utente durante l'esecuzione.\\
 +Questo tipo di job possono essere sottomessi solamente sulle code che accettano i job di tipo interattivo, nello specifico le code denominate ''*-devel''.\\
 +Esempio: esecuzione del comando ls con job interattivo:
 +<code bash>
 +$ bsub -Is -q interactive ls 
 +Job <682> is submitted to queue <interactive>
 +<<Waiting for dispatch ...>> 
 +537.err 
 +537.out 
 +example.job 
 +hello_mic 
 +hello_nv 
 +intel 
 +interactive.job 
 +lsf_job_template.job 
 +matrix 
 +mbox 
 +</code>
 +
 +Esempio: compilazione 
 +<code bash>
 +$ bsub -Is -q interactive gcc -o hello hello.c 
 +Job <1525> is submitted to queue <interactive>
 +<<Waiting for dispatch ...>> 
 +<<Starting on rd-gpu-01.cnaf.infn.it>>
 +</code>
 +
 +Esempio: shell con X-Forwarding (notare opzione -XF) 
 +<code bash>
 +$ bsub -Is -XF -q interactive /bin/bash
 +Job <8917> is submitted to queue <interactive>
 +<<ssh X11 forwarding job>>
 +<<Waiting for dispatch ...>>
 +[user@server ~]$ 
 +</code>

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki