lca:servizi:calcolo
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisioneRevisione 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 | ||
+ | |||
+ | ===== Architettura ===== | ||
+ | |||
+ | {{lca: | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Hardware ===== | ||
+ | |||
+ | ^ nome ^ CPU ^ modello | ||
+ | | emi-ui | ||
+ | | grid-ui | ||
+ | | emi-ce | ||
+ | |||| 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:// | ||
+ | |||
+ | ==== 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' | ||
+ | Ganglia 3.0.2 [[http:// | ||
+ | |||
+ | ==== Programmi di calcolo ==== | ||
+ | Matlab R14 (Service Pack 3)\\ | ||
+ | Mathematica 5.2 [[http:// | ||
+ | |||
+ | ==== Compilatori GNU C/ | ||
+ | gcc\\ | ||
+ | g++\\ | ||
+ | g77 | ||
+ | |||
+ | ==== Compilatori GNU C/ | ||
+ | i686-unknown-linux-gnu-gcc\\ | ||
+ | i686-unknown-linux-gnu-g++\\ | ||
+ | i686-unknown-linux-gnu-g77\\ | ||
+ | i686-unknown-linux-gnu-gfortran | ||
+ | |||
+ | ==== Compilatori GNU C/ | ||
+ | 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/ | ||
+ | icc\\ | ||
+ | ifort | ||
+ | |||
+ | ===== Utilizzo del cluster ===== | ||
+ | L' | ||
+ | |||
+ | 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:// | ||
+ | [[http:// | ||
+ | [[http:// | ||
+ | [[http:// | ||
+ | [[http:// | ||
+ | [[http:// | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Spazio disco ==== | ||
+ | |||
+ | ^ percorso | ||
+ | | / | ||
+ | | / | ||
+ | | / | ||
+ | | / | ||
+ | | / | ||
+ | |||
+ | ==== Nodi di calcolo ==== | ||
+ | |||
+ | ^ nodo | ||
+ | | c32-ce | ||
+ | | c64-wn01 | SI | SI | NO | ||
+ | | c64-wn02 | SI | SI | NO | ||
+ | | c64-wn03 | SI | SI | NO | ||
+ | | c64-wn04 | SI | SI | NO | ||
+ | | c64-wn05 | SI | SI | NO | ||
+ | | c64-wn06 | SI | SI | NO | ||
+ | | c64-wn07 | SI | SI | NO | ||
+ | |||
+ | |||
+ | ==== Code ==== | ||
+ | Sul cluster è attivo un server PBS (Portable Batch System) che gestisce la sottomissione dei job. L' | ||
+ | |||
+ | ^ coda ^ nodi | ||
+ | | fast | c32-ce | | ||
+ | | long | c32-ce | | ||
+ | | didattica | c32-ce | | ||
+ | | matlab | ||
+ | | long64 | ||
+ | | fast64 | ||
+ | | stat64 | ||
+ | |||
+ | ==== Restrizioni globali ==== | ||
+ | |||
+ | ^ massimo numero job in run per utente | ||
+ | | 20 | | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Sottomissione dei job con creazione automatica dello script PBS ==== | ||
+ | |||
+ | Il comando '' | ||
+ | |||
+ | Per informazioni aggiornate su '' | ||
+ | |||
+ | < | ||
+ | lca-job-submit --help | ||
+ | </ | ||
+ | |||
+ | Per conoscere la versione di '' | ||
+ | |||
+ | < | ||
+ | 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 '' | ||
+ | |||
+ | 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: | ||
+ | </ | ||
+ | |||
+ | Per sottomettere un programma a 64 bit ottimizzato per processori Intel Core 2: | ||
+ | |||
+ | < | ||
+ | lca-job-submit --queue=long64 --nodes=1: | ||
+ | </ | ||
+ | |||
+ | Per sottomettere un programma a 64 bit ottimizzato per processori westmere: | ||
+ | |||
+ | < | ||
+ | lca-job-submit --queue=long64 --nodes=1: | ||
+ | </ | ||
+ | |||
+ | Per sottomettere uno script Matlab: | ||
+ | |||
+ | < | ||
+ | lca-job-submit --queue=matlab job | ||
+ | </ | ||
+ | |||
+ | All' | ||
+ | |||
+ | Attenzione! Non spostare o cancellare il programma mandato in coda prima dell' | ||
+ | |||
+ | Un programma a 32 bit, lanciato con '' | ||
+ | |||
+ | Un programma a 64 bit, lanciato con '' | ||
+ | |||
+ | Esempio di sottomissione del programma '' | ||
+ | |||
+ | < | ||
+ | [fabio.spataro@calcolo ~]$ lca-job-submit hostname | ||
+ | lca-job-submit: | ||
+ | lca-job-submit: | ||
+ | </ | ||
+ | |||
+ | Al termine del programma, lo standard error verrà scritto in '' | ||
+ | |||
+ | |||
+ | ==== Creazione automatica dello script PBS senza sottomissione del job ==== | ||
+ | |||
+ | Esempio: | ||
+ | |||
+ | < | ||
+ | [fabio.spataro@calcolo ~]$ lca-job-submit --queue=long64 --dry-run hostname | ||
+ | lca-job-submit: | ||
+ | lca-job-submit: | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Sottomissione di uno script PBS ==== | ||
+ | |||
+ | Esempio: | ||
+ | |||
+ | < | ||
+ | qsub hostname | ||
+ | </ | ||
+ | |||
+ | Consultare la pagina man di '' | ||
+ | |||
+ | All' | ||
+ | |||
+ | Al termine del programma, lo standard error verrà scritto in '' | ||
+ | |||
+ | 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 '' | ||
+ | |||
+ | ==== Cancellazione di un job ==== | ||
+ | |||
+ | Esempio: | ||
+ | |||
+ | < | ||
+ | qdel 21 | ||
+ | </ | ||
+ | |||
+ | Consultare la pagina man di '' | ||
+ | |||
+ | |||
+ | ==== Scambio dell' | ||
+ | |||
+ | Esempio: | ||
+ | |||
+ | < | ||
+ | qorder 21 22 | ||
+ | </ | ||
+ | |||
+ | Consultare la pagina man di '' | ||
+ | |||
+ | ==== Spostamento di un job da una coda all' | ||
+ | |||
+ | Esempio: | ||
+ | |||
+ | < | ||
+ | qmove long 21 | ||
+ | </ | ||
+ | |||
+ | Consultare la pagina man di '' | ||
+ | |||
+ | ===== Crystal ===== | ||
+ | |||
+ | Per l' | ||
+ | |||
+ | Per eseguire la sottomissione di job paralleli deve essere utilizzata la coda '' | ||
+ | |||
+ | |||
+ | |||