======= 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'': lca-job-submit --help Per conoscere la versione di ''lca-job-submit'': lca-job-submit --version Per sottomettere un programma a 32 bit: lca-job-submit job lca-job-submit --queue=long job 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: lca-job-submit job --size=100x100 job.conf Per sottomettere un programma a 64 bit: lca-job-submit --queue=long64 job Per sottomettere un programma a 64 bit ottimizzato per processori AMD Opteron: lca-job-submit --queue=long64 --nodes=1:opteron job Per sottomettere un programma a 64 bit ottimizzato per processori Intel Core 2: lca-job-submit --queue=long64 --nodes=1:core2 job Per sottomettere un programma a 64 bit ottimizzato per processori westmere: lca-job-submit --queue=long64 --nodes=1:westmere job Per sottomettere uno script Matlab: lca-job-submit --queue=matlab job 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'': [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 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: [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 ==== Sottomissione di uno script PBS ==== Esempio: qsub hostname 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: qstat qstat -f 21 qstat -u $USER qstat -u $USER -n qstat -Q Consultare la pagina man di ''qstat'' per ulteriori informazioni. ==== Cancellazione di un job ==== Esempio: qdel 21 Consultare la pagina man di ''qdel'' per ulteriori informazioni. ==== Scambio dell'ordine d'esecuzione di due job in coda ==== Esempio: qorder 21 22 Consultare la pagina man di ''qorder'' per ulteriori informazioni. ==== Spostamento di un job da una coda all'altra ==== Esempio: qmove long 21 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''