Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisione Revisione precedente | |||
lca:servizi:calcolo [14/07/2014 14:59] roberto.covati |
lca:servizi:calcolo [29/09/2014 15:26] (versione attuale) roberto.alfieri |
||
---|---|---|---|
Linea 1: | Linea 1: | ||
+ | ======= Calcolo: cluster per il calcolo numerico intensivo del Dipartimento di Fisica ====== | ||
+ | |||
+ | Il servizio di calcolo numerico intensivo del Dipartimento di Fisica è affidato ad un cluster di macchine biprocessore. Il cluster ha come punto di accesso le macchine **grid-ui.fis.unipr.it** e **emi-ui.pr.infn.it**. | ||
+ | |||
+ | ===== Architettura ===== | ||
+ | |||
+ | {{lca:servizi:calcolo.png|architettura}} | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Hardware ===== | ||
+ | |||
+ | ^ nome ^ CPU ^ modello ^ RAM (GB) ^ SisOP ^ Note ^ | ||
+ | | emi-ui | 1 | Macchina virtuale Vmware | 2 | SL6 | User Interface | | ||
+ | | grid-ui | 2 | Macchina virtuale Vmware | 1 | SL5 | User Interface | | ||
+ | | emi-ce | 1 | Macchina virtuale Vmware | 1 | SL5 | Job manager | | ||
+ | |||| Calcolo Seriale |||||| | ||
+ | | c64-wn01 | 2 | AMD Opteron 248 2.20 GHz | 3 | | down | | ||
+ | | c64-wn02 | 2 | AMD Opteron 248 2.20 GHz | 3 | | down | | ||
+ | | c64-wn03 | 2 | AMD Opteron 248 2.20 GHz | 3 | | down | | ||
+ | | c64-wn04 | 2 | AMD Opteron 248 2.20 GHz | 3 | | down | | ||
+ | | c64-wn05 | 4 | AMD Opteron 2212 2.00 GHz | 4 | SL5 | x86_64 matlab | | ||
+ | | c64-wn06 | 8 | Intel Xeon E5335 2.00 GHz | 8 | SL5 | x86_64 matlab | | ||
+ | | c64-wn07 | 8 | Intel Xeon E5335 2.00 GHz | 8 | SL5 | x86_64 matlab | | ||
+ | | c64-wn08 | 6 | Intel Xeon E5650 2.80 GHz | 12 | SL5 | x86_64 matlab | | ||
+ | | c64-wn09 | 12 | Intel Xeon E5650 2.80 GHz | 24 | SL5 | x86_64 matlab | | ||
+ | |||| Calcolo parallelo |||||| | ||
+ | | grid-wn81 | 8 (+HT) | Intel Xeon E5520 2.27 GHz | 12 | SL 6 | GRID | | ||
+ | | grid-wn82 | 8 (+HT) | Intel Xeon E5520 2.27 GHz | 12 | SL 6 | GRID | | ||
+ | | grid-wn83 | 8 (+HT) | Intel Xeon E5520 2.27 GHz | 12 | SL 6 | GRID | | ||
+ | | grid-wn84 | 8 (+HT) | Intel Xeon E5520 2.27 GHz | 12 | SL 6 | GRID | | ||
+ | | grid-wn85 | 8 (+HT) | Intel Xeon E5520 2.27 GHz | 12 | SL 6 | INFN | | ||
+ | | grid-wn86 | 8 (+HT) | Intel Xeon E5520 2.27 GHz | 12 | SL 6 | INFN | | ||
+ | | grid-wn87 | 8 (+HT) | Intel Xeon E5520 2.27 GHz | 12 | SL 6 | INFN | | ||
+ | | grid-wn88 | 8 (+HT) | Intel Xeon E5530 2.40 GHz | 12 | SL 6 | INFN (Proliant HP, ex Alba) | | ||
+ | |||
+ | ===== Software ===== | ||
+ | |||
+ | ==== Benchmark ==== | ||
+ | [[http://www.fis.unipr.it/lca/bench/|Benchmark Locali]] | ||
+ | |||
+ | ==== OpenMosix ==== | ||
+ | Un software specifico, OpenMosix, si preoccupa di suddividere ed ottimizzare il carico di lavoro su tutti in nodi con architettura 32 bit. | ||
+ | |||
+ | ==== Monitor dell'attività del cluster ==== | ||
+ | Ganglia 3.0.2 [[http://www.fis.unipr.it/ganglia/?c=Calcolo|Report grafico]] | ||
+ | |||
+ | ==== Programmi di calcolo ==== | ||
+ | Matlab R14 (Service Pack 3)\\ | ||
+ | Mathematica 5.2 [[http://c32-ce.fis.unipr.it/cgi-bin/monitorlm|Licenze in uso]]\\ | ||
+ | |||
+ | ==== Compilatori GNU C/C++/Fortran (versione 3.2.2) ==== | ||
+ | gcc\\ | ||
+ | g++\\ | ||
+ | g77 | ||
+ | |||
+ | ==== Compilatori GNU C/C++/Fortran (versione 4.1.0) ==== | ||
+ | i686-unknown-linux-gnu-gcc\\ | ||
+ | i686-unknown-linux-gnu-g++\\ | ||
+ | i686-unknown-linux-gnu-g77\\ | ||
+ | i686-unknown-linux-gnu-gfortran | ||
+ | |||
+ | ==== Compilatori GNU C/C++/Fortran per creare programmi a 64 bit (versione 4.1.0) ==== | ||
+ | x86_64-unknown-linux-gnu-gcc\\ | ||
+ | x86_64-unknown-linux-gnu-g++\\ | ||
+ | x86_64-unknown-linux-gnu-g77\\ | ||
+ | x86_64-unknown-linux-gnu-gfortran | ||
+ | |||
+ | ==== Compilatori Intel C/C++/Fortran (versione 9.0) ==== | ||
+ | icc\\ | ||
+ | ifort | ||
+ | |||
+ | ===== Utilizzo del cluster ===== | ||
+ | L'accesso è riservato allo staff del Dipartimento di Fisica ed agli studenti in tirocinio presso il Dipartimento di Fisica dopo esplicita richiesta al [[lca@fis.unipr.it|Laboratorio di Calcolo Avanzato]]. | ||
+ | |||
+ | Compilatori per creare programmi a 64 bit e code dedicate consentono un utilizzo non interattivo del nodo con architettura a 64 bit. | ||
+ | |||
+ | |||
+ | |||
+ | ==== Statistiche utilizzo del cluster ==== | ||
+ | [[http://www.fis.unipr.it/lca/calcolo/usage/2005.html|Attività 2005]]\\ | ||
+ | [[http://www.fis.unipr.it/lca/calcolo/usage/2006.html|Attività 2006]]\\ | ||
+ | [[http://www.fis.unipr.it/lca/calcolo/usage/2007.html|Attività 2007]]\\ | ||
+ | [[http://www.fis.unipr.it/lca/calcolo/usage/2008.html|Attività 2008]]\\ | ||
+ | [[http://www.fis.unipr.it/lca/calcolo/usage/2009.html|Attività 2009]]\\ | ||
+ | [[http://www.fis.unipr.it/lca/calcolo/usage/2010.html|Attività 2010]] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Spazio disco ==== | ||
+ | |||
+ | ^ percorso ^ accessile da ^^^^ quota ^ mirror ^ backup ^ | ||
+ | | /home/staff | calcolo | archimede | | | SI | SI | SI | | ||
+ | | /work/staff | calcolo | archimede | | | NO | SI | NO | | ||
+ | | /space/staff | calcolo | archimede | | | SI | SI | NO | | ||
+ | | /home/studenti | | | c32-ui03 | c32-ui04 | SI | SI | SI | | ||
+ | | /work/studenti | | | c32-ui03 | c32-ui04 | NO | SI | NO | | ||
+ | |||
+ | ==== Nodi di calcolo ==== | ||
+ | |||
+ | ^ nodo ^ 32 bit ^ 64 bit ^ OpenMosix ^ limite job in run ^ | ||
+ | | c32-ce | SI | NO | SI | 10 | | ||
+ | | c64-wn01 | SI | SI | NO | 2 | | ||
+ | | c64-wn02 | SI | SI | NO | 2 | | ||
+ | | c64-wn03 | SI | SI | NO | 2 | | ||
+ | | c64-wn04 | SI | SI | NO | 2 | | ||
+ | | c64-wn05 | SI | SI | NO | 4 | | ||
+ | | c64-wn06 | SI | SI | NO | 8 | | ||
+ | | c64-wn07 | SI | SI | NO | 8 | | ||
+ | |||
+ | |||
+ | ==== Code ==== | ||
+ | Sul cluster è attivo un server PBS (Portable Batch System) che gestisce la sottomissione dei job. L'utente ha a disposizione sette code con differenti caratteristiche. La coda //fast// è indicata per job che richiedono la massima velocità di esecuzione. Solo alcuni utenti sono autorizzati ad utilizzarla. La coda //long// è la coda più adatta ai job di lunga durata. È la coda di default attiva sul server PBS. La coda //didattica// è riservata agli studenti. La coda //matlab// consente di lanciare script o comandi Matlab. La coda //long64// è indicata per job a 64 bit. La coda //fast64// è indicata per job a 64 bit. Solo alcuni utenti sono autorizzati ad utilizzarla. La coda //stat64// è indicata per job a 64 bit. Solo alcuni utenti sono autorizzati ad utilizzarla. | ||
+ | |||
+ | ^ coda ^ nodi ^^ limite job in run ^ limite job in run per utente ^ riservata ^ | ||
+ | | fast | c32-ce | | 2 | 2 | SI | | ||
+ | | long | c32-ce | | 10 | 4 | NO | | ||
+ | | didattica | c32-ce | | 6 | 6 | SI | | ||
+ | | matlab | c32-ce | c64-wn[01-07] | 2 | 1 | NO | | ||
+ | | long64 | | c64-wn[01-07] | 28 | 4 | NO | | ||
+ | | fast64 | | c64-wn[01-07] | 12 | 12 | SI | | ||
+ | | stat64 | | c64-wn[01-07] | 16 | 16 | SI | | ||
+ | |||
+ | ==== Restrizioni globali ==== | ||
+ | |||
+ | ^ massimo numero job in run per utente ^ | ||
+ | | 20 | | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Sottomissione dei job con creazione automatica dello script PBS ==== | ||
+ | |||
+ | Il comando ''lca-job-submit'' permette la sottomissione di job sulle code sgravando l'utente dalla necessita di creare uno script PBS per ogni job. | ||
+ | |||
+ | Per informazioni aggiornate su ''lca-job-submit'': | ||
+ | |||
+ | <file> | ||
+ | lca-job-submit --help | ||
+ | </file> | ||
+ | |||
+ | Per conoscere la versione di ''lca-job-submit'': | ||
+ | |||
+ | <file> | ||
+ | lca-job-submit --version | ||
+ | </file> | ||
+ | |||
+ | Per sottomettere un programma a 32 bit: | ||
+ | |||
+ | <file> | ||
+ | lca-job-submit job | ||
+ | lca-job-submit --queue=long job | ||
+ | </file> | ||
+ | |||
+ | Nei due casi il risultato è lo stesso perché è la ''long'' la coda di default. | ||
+ | |||
+ | Per sottomettere un programma a 32 bit che accetta opzioni ed argomenti: | ||
+ | |||
+ | <file> | ||
+ | lca-job-submit job --size=100x100 job.conf | ||
+ | </file> | ||
+ | |||
+ | Per sottomettere un programma a 64 bit: | ||
+ | |||
+ | <file> | ||
+ | lca-job-submit --queue=long64 job | ||
+ | </file> | ||
+ | |||
+ | Per sottomettere un programma a 64 bit ottimizzato per processori AMD Opteron: | ||
+ | |||
+ | <file> | ||
+ | lca-job-submit --queue=long64 --nodes=1:opteron job | ||
+ | </file> | ||
+ | |||
+ | Per sottomettere un programma a 64 bit ottimizzato per processori Intel Core 2: | ||
+ | |||
+ | <file> | ||
+ | lca-job-submit --queue=long64 --nodes=1:core2 job | ||
+ | </file> | ||
+ | |||
+ | Per sottomettere un programma a 64 bit ottimizzato per processori westmere: | ||
+ | |||
+ | <file> | ||
+ | lca-job-submit --queue=long64 --nodes=1:westmere job | ||
+ | </file> | ||
+ | |||
+ | Per sottomettere uno script Matlab: | ||
+ | |||
+ | <file> | ||
+ | lca-job-submit --queue=matlab job | ||
+ | </file> | ||
+ | |||
+ | All'avvio del job, alla conclusione o all'interruzione del job, PBS invia all'utente una e-mail di notifica. | ||
+ | |||
+ | Attenzione! Non spostare o cancellare il programma mandato in coda prima dell'avvio del job. | ||
+ | |||
+ | Un programma a 32 bit, lanciato con ''lca-job-submit'' sulla coda //long64//, verrà eseguito correttamente. | ||
+ | |||
+ | Un programma a 64 bit, lanciato con ''lca-job-submit'' sulle code //fast// e //long//, verrà automaticamente sottomesso sulla coda //long64//. | ||
+ | |||
+ | Esempio di sottomissione del programma ''hostname'': | ||
+ | |||
+ | <file> | ||
+ | [fabio.spataro@calcolo ~]$ lca-job-submit hostname | ||
+ | lca-job-submit: PBS JOB 21.c32-ce.fis.unipr.it | ||
+ | lca-job-submit: PBS script written to ~/.lca/pbs/21.c32-ce.sh | ||
+ | </file> | ||
+ | |||
+ | Al termine del programma, lo standard error verrà scritto in ''hostname.e21'', lo standard output in ''hostname.o21''. I due file verranno creati nella directory corrente al momento del lancio di ''lca-job-submit''. | ||
+ | |||
+ | |||
+ | ==== Creazione automatica dello script PBS senza sottomissione del job ==== | ||
+ | |||
+ | Esempio: | ||
+ | |||
+ | <file> | ||
+ | [fabio.spataro@calcolo ~]$ lca-job-submit --queue=long64 --dry-run hostname | ||
+ | lca-job-submit: PBS JOB not submitted | ||
+ | lca-job-submit: PBS script written to ~/.lca/pbs/hostname | ||
+ | </file> | ||
+ | |||
+ | |||
+ | ==== Sottomissione di uno script PBS ==== | ||
+ | |||
+ | Esempio: | ||
+ | |||
+ | <file> | ||
+ | qsub hostname | ||
+ | </file> | ||
+ | |||
+ | Consultare la pagina man di ''qsub'' per informazioni sul formato dello script PBS. | ||
+ | |||
+ | All'avvio del job, alla conclusione o all'interruzione del job, PBS invia all'utente una e-mail di notifica. | ||
+ | |||
+ | Al termine del programma, lo standard error verrà scritto in ''hostname.e21'', lo standard output in ''hostname.o21''. I due file verranno creati nella directory corrente al momento del lancio di ''qsub''. | ||
+ | |||
+ | Un programma a 32 bit, lanciato sulla coda //long64// dallo script PBS, verrà eseguito correttamente. | ||
+ | |||
+ | Un programma a 64 bit, lanciato sulle code //fast// e //long// dallo script PBS, non verrà eseguito e terminerà con errore. | ||
+ | |||
+ | ==== Controllo dello stato delle code e dei job ==== | ||
+ | |||
+ | Esempi: | ||
+ | |||
+ | <file> | ||
+ | qstat | ||
+ | qstat -f 21 | ||
+ | qstat -u $USER | ||
+ | qstat -u $USER -n | ||
+ | qstat -Q | ||
+ | </file> | ||
+ | |||
+ | Consultare la pagina man di ''qstat'' per ulteriori informazioni. | ||
+ | |||
+ | ==== Cancellazione di un job ==== | ||
+ | |||
+ | Esempio: | ||
+ | |||
+ | <file> | ||
+ | qdel 21 | ||
+ | </file> | ||
+ | |||
+ | Consultare la pagina man di ''qdel'' per ulteriori informazioni. | ||
+ | |||
+ | |||
+ | ==== Scambio dell'ordine d'esecuzione di due job in coda ==== | ||
+ | |||
+ | Esempio: | ||
+ | |||
+ | <file> | ||
+ | qorder 21 22 | ||
+ | </file> | ||
+ | |||
+ | Consultare la pagina man di ''qorder'' per ulteriori informazioni. | ||
+ | |||
+ | ==== Spostamento di un job da una coda all'altra ==== | ||
+ | |||
+ | Esempio: | ||
+ | |||
+ | <file> | ||
+ | qmove long 21 | ||
+ | </file> | ||
+ | |||
+ | Consultare la pagina man di ''qmove'' per ulteriori informazioni. | ||
+ | |||
+ | ===== Crystal ===== | ||
+ | |||
+ | Per l'utilizzo del software crystal e' necessario collegarsi in SSH su emi-ui.pr.infn.it | ||
+ | |||
+ | Per eseguire la sottomissione di job paralleli deve essere utilizzata la coda ''parallel'' | ||
+ | |||
+ | |||
+ | |||